quarta-feira, 28 de novembro de 2007

this e super

Estas duas palavras-chave da linguagem são aplicadas a métodos não estáticos, ou seja, de instância. A this é utilizada para referenciar variáveis ou métodos da instância atual e o super é utilizada para associar a métodos da classe pai.
Por exemplo:

public class Pai {
public int lançar(int numero) {
return 6 \% numero;
}
}
public class Filho extends Pai {
private int numero;
...
public int lançar(int numero) {
if (numero == 0) {
return this.numero; // retorna o atributo da classe
}
super.lançar(numero); // Chave o lançar da classe pai.
}
}


A classe Pai possui um método lançar retornando um inteiro. A classe filho, que estende de Pai foi criada para tratar uma divisão por zero que poderá ocorrer na classe Pai. Portanto, se for zero, retorna um número predefinido como atributo na classe Filho, caso contrário retorna o resultado do cálculo da classe Pai. Este é um excelente exemplo de polimorfismo e sobrescrita de métodos que veremos a seguir.
O Java associa automaticamente a todas as variáveis e métodos referenciados com a palavra this. Por isso, na maioria dos casos torna-se redundante o uso em todas as variáveis da palavra this. Existem casos em se faz necessário o uso da palavra this. Por exemplo, você pode necessitar chamar apenas uma parte do método passando uma instância do argumento do objeto. (Chamar um classe de forma localizada);

Nenhum comentário: