Часто для того, щоб уникнути написання коду ініціалізації, що повторюється, необхідно викликати код одного конструктора з іншого.
Ось приклад, як це можна робити:
public class SomeClass {
int a;
int b;
int c;
public SomeClass(int a, int b){
this.a = a;
this.b = b;
}
public SomeClass(int a, int b, int c){
// Вызов конструктора с двумя параметрами.
this(a, b);
this.c = c;
}
public void show(){
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
}
}
Як ви бачите, для цього використовується ключове слово this
, після якого в круглих дужках вказуємо параметри для відповідного конструктора (з двома параметрами в даному випадку). Ви можете викликати одного конструктора з іншого в тому ж класі, або в надкласі, з такими обмеженнями:
- Конструктор, що викликається, повинен бути в першому рядку коду в конструкторі, що викликає.
- Вкладений конструктор не може мати жодного явного чи неявного посилання на "this". Таким чином, ви не можете потрапити у внутрішній клас.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ