Freqüentemente, para evitar escrever código de inicialização duplicado, é necessário chamar o código de um construtor de outro.
Aqui está um exemplo de como isso pode ser feito:
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);
}
}
Como você pode ver, para isso utilizamos a palavra-chave this
, após a qual indicamos entre parênteses os parâmetros do construtor correspondente (com dois parâmetros neste caso). Você pode chamar um construtor de outro na mesma classe ou em uma superclasse, com as seguintes restrições:
- O construtor a ser chamado deve estar na primeira linha do código do construtor de chamada.
- Um construtor aninhado não pode ter nenhuma referência explícita ou implícita a "this". Então você não pode entrar na classe interna.
GO TO FULL VERSION