JavaRush/Курси/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;
    }
}

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

Коментарі
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Для цієї сторінки немає коментарів.