Часто для того, чтобы избежать написание повторяющегося кода инициализации, необходимо вызвать код одного конструктора из другого.
Вот пример, как это можно делать:
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". Таким образом, вы не можете попасть во внутренний класс.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ