Page 15 - 4657
P. 15
} }
class PointCreateAlt {
public static void main(String args[]) {
Point p = new Point();
System.out.println("x = " + p.x + " у = " + p.y);
} }
У цьому прикладі об'єкт класу Point створюється не при
виклику першого конструктора, як це було раніше, а за
допомогою другого конструктора без параметрів. От результат
роботи цієї програми:
С:\> java PointCreateAlt
х = -1 у = -1
Зауваження.
Рішення про те, який конструктор потрібно викликати в тім
чи іншому випадку, приймається відповідно до кількості і типу
параметрів, зазначених в операторі new. Неприпустимо
повідомляти в класі методи з однаковими іменами і
сигнатурами. У сигнатурі методу не враховуються імена
формальних параметрів враховуються лише їхні типи і кількість.
Ключове слово this у конструкторах
Черговий варіант класу Point показує, як, використовуючи
this із вмістом методів, можна будувати одні конструктори на
основі інших.
class Point { int х, у;
Point(int х, int у) {
this.x = х;
this.у = у;
}
Point() {
this(-1, -1);
} }
У цьому прикладі другий конструктор для завершення
ініціалізації об'єкта звертається до першого конструктора.
13