Classes Internas e Anônimas
Inner class (Classe Interna) e anonymous class (Classe Anônima) são recursos do Java que permitem criar classes dentro de outras classes. Essas classes são úteis para encapsular código e tornar o código mais modular. Eles são particularmente úteis em situações em que uma classe é usada apenas em um contexto específico e não faz sentido ter essa classe como uma classe separada.
Inner Class
Uma inner class é uma classe definida dentro de outra classe, e pode ter acesso aos membros da classe externa. É possível definir inner classes estáticas, que não têm acesso aos membros da classe externa.
Um exemplo de inner class:
public class OuterClass {
private int x = 10;
class InnerClass {
public void printX() {
System.out.println(x); // imprime o valor 10
}
}
}
Neste exemplo, a classe InnerClass é uma inner class da classe OuterClass e tem acesso ao campo x da classe externa.
Anonymous Class
Já uma anonymous class é uma classe sem nome que é definida e instanciada ao mesmo tempo. É uma forma conveniente de criar uma classe para implementar uma interface ou uma classe abstrata. Um exemplo de anonymous class que implementa a interface DoSomething
:
public class Executor{
private int x = 10;
public void execute(){
DoSomething doSomething = new DoSomething() {
public void do() {
System.out.println(x);
}
};
doSomething.do(); // imprime o valor 10
}
}
public interface DoSomething {
void do();
}
Neste exemplo, a classe implementa a interface DoSomething
e é definida e instanciada ao mesmo tempo. Dessa forma, a variável doSomething
, ao chamar o método do()
executa a sua implementação única.
Last updated