JavaRush /Курси /Java Core /Порядок ініціалізації змінних

Порядок ініціалізації змінних

Java Core
Рівень 5 , Лекція 8
Відкрита

— Привіт, Аміго! З цієї лекції ти дізнаєшся більше про порядок ініціалізації змінних.

Уяви, що ти бачиш код. Які значення отримають змінні?

Код
class Cat {
    public int a = 5;
    public int b = a + 1;
    public int c = a * b;
}
Код
class Cat {
    public int a = getSum();
    public int b = getSum() - a;
    public int c = getSum() - a - b;

    public int getSum() {
        return a + b + c;
    }
}

— А хіба так можна?

— Звісно. Порядок оголошення між методами та полями класу неважливий.

Клас завантажується згори вниз, тому важливо, щоб поле класу зверталося лише до вже завантажених інших полів. У прикладі поле b може звертатися до a, але нічого не знає про c.

— І що ж буде?

— Коли змінні створюються, вони набувають дефолтних значень (значення за замовчуванням).

Код Що відбувається насправді
class Cat {
    public int a = 5;
    public int b = a + 1;
    public int c = a * b;
}
class Cat {
    public int a = 0;
    public int b = 0;
    public int c = 0;

    public Cat() { super();

         a = 5;
         b = a + 1; //5+1 = 6
         c = a * b; //5*6 = 30
         }
}
class Cat {
    public int a = getSum();
    public int b = getSum() - a;
    public int c = getSum() - a - b;

    public int getSum() {
        return a + b + c;
    }
}
class Cat {
    public int a = 0;
    public int b = 0;
    public int c = 0;

    public Cat() { super();

        a = getSum(); //(a+b+c)=0
        b = getSum() - a; //(a+b+c)-a=b=0
        c = getSum() - a - b; //(a+b+c)-a-b=c=0
        }

    public int getSum() {
        return a + b + c;
    }
}

— Овва! Виявляється, це так просто. Дякую, Дієго, ти – справжній друг!

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ