Często, aby uniknąć pisania zduplikowanego kodu inicjującego, konieczne jest wywołanie kodu jednego konstruktora z innego.
Oto przykład, jak można to zrobić:
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);
}
}
Jak widać, używamy do tego słowa kluczowego this
, po którym w nawiasach podajemy parametry odpowiedniego konstruktora (w tym przypadku z dwoma parametrami). Możesz wywołać jednego konstruktora z innego w tej samej klasie lub w nadklasie, z następującymi ograniczeniami:
- Konstruktor, który ma zostać wywołany, musi znajdować się w pierwszym wierszu kodu konstruktora wywołującego.
- Konstruktor zagnieżdżony nie może mieć żadnego jawnego ani ukrytego odniesienia do „tego”. Nie możesz więc dostać się do klasy wewnętrznej.
GO TO FULL VERSION