Көбүнчө, инициализациянын кайталанма codeун жазуудан качуу үчүн бир конструктордун codeун башкасынан чакыруу зарыл.
Бул жерде муну кантип жасоого боло турган бир мисал келтирилген:
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
, андан кийин биз кашаанын ичинде тиешелүү конструктор үчүн параметрлерди көрсөтөбүз (бул учурда эки параметр менен). Төмөнкү чектөөлөр менен бир класста же суперкласста бир конструкторду экинчисинен чакыра аласыз:
- Чакырыла турган конструктор чакыруучу конструктордогу codeдун биринчи сабында болушу керек.
- Уюшкан конструктордо "булга" ачык же кыйыр шилтеме болушу мүмкүн эмес. Демек, ички класска кире албайсың.
GO TO FULL VERSION