Часто для того, чтобы избежать написание повторяющегося codeа инициализации, необходимо вызвать code одного конструктора из другого.
Вот пример, How это можно делать:
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
, после которого в круглых скобках указываем параметры для соотвествующего конструктора (с двумя параметрами в данном случае). Вы можете вызвать один конструктор из другого в том же классе, or в надклассе, со следующими ограничениями:
- Вызываемый конструктор должен быть в первой строке codeа в вызывающем конструкторе.
- Вложенный конструктор не может иметь ниHowой явной or неявной ссылки на "this". Таким образом, вы не можете попасть во внутренний класс.
GO TO FULL VERSION