Java
Faculdade Alvorada
Aluno: Christian Cavalcante
Professor:
Turma:
Classes Internas
Como o próprio nome diz, são classes que são definidas dentro de outra classe. Sendo que elas tem um relacionamento especial com sua classe externa (classe onde ela está definida), em relação as outras classes. Pelo fato de que elas podem acessar os membros privados da classe externa. Por que na verdade o que acontece, implicitamente a classe interna tem uma instância da classe externa.
As classes internas são úteis por sua relação íntima com a classe externa. Por exemplo, se você precisa de um objeto que será usado apenas pela classe que você está escrevendo e por mais nenhuma outra, você não precisa escrever uma nova classe dentro do seu modelo de framework, basta tornar este código uma classe interna. Isto irá permitir que a classe interna tenha acesso a todas as variáveis e métodos (inclusive os privados) da classe que a contém, ou seja, a classe externa. Existem várias formas de se escrever uma classe interna.
Como se definir uma classe interna:
public class OuterClass {
//Classe Interna class InnerClass {
private int integer; public InnerClass() {
}
protected void myMethod(){
}
}
//…
}
Temos uma classe OuterClass, onde definimos normalmente outra classe dentro desta, chamada InnerClass. Onde está nova classe pode ter tudo que, qualquer classe possa ter, como: variáveis de instância, métodos, blocos de inicialização, herança, implementação, etc. Mas, vale ressaltar que ela não pode definir membros estáticos(causará erro de compilação). Já que se isso ocorrer, ela terá que torna-se uma classe estática, deixando de ser uma classe interna comum.
Para instanciar um classe interna, é necessário(obrigatório) ter uma instância da classe externa. Em hipótese alguma, pode-se criar uma instância da interna, sem ter uma instancia da externa para associá-la.
1. Instanciando a partir da classe