Java · Intermediário · Português · Técnico
classe interna
Classe declarada dentro de outra. Se não for static, cada instância guarda uma referência à instância externa e acessa seus membros.
Onde usar
Aparece em vazamentos de memória com listeners e adapters que seguram o objeto externo. Em review: 'torne essa classe interna static'.
Em código
class Externa {
int valor = 7;
class Interna {
int dobro() { return valor * 2; }
}
}
var e = new Externa();
var i = e.new Interna(); // dobro() == 14Exemplos
Essa classe interna segura a tela inteira na memória.
Torna a classe interna static para não prender a externa.
Cuidado
A classe aninhada static não tem referência à externa; é só um agrupamento de nomes.
Sinônimos
inner class
Antônimos
classe aninhada estática