Olá!

Hoje falarei um pouco sobre um assunto abordado nas provas de certificação de programador Java: Classes Internas (Inner Class). O conteúdo a ser abordado aqui não é nem de longe completo, já que este assunto é bem extenso. No entanto, o propósito deste post é ser um guia rápido para sanar eventuais dúvidas sobre o assunto ou simplesmente introduzir novos programadores ao tema.

Existem três razões pelas quais é interessante o uso de classes internas:

  1. Organização: principalmente quando a classe não irá ser usada em muitos contextos.
  2. Acesso: uma vez que classes internas podem acessar variáveis do classes externa.
  3. Conveniência: ter que criar um arquivo para cada classe as vezes é desnecessário.

As classes internas são dividas em duas categorias: estáticas e não estáticas. Dessas categorias, separamos em quatro tipos de classes internas:

  1. Classes internas estáticas: declaradas como membros estáticos de outra classe.
  2. Classes internas de instância: declaradas como membros de instância de outra classe.
  3. Classes internas locais: declaradas dentro de métodos de outras classes.
  4. Classes internas anônimas: são como classes internas locais, porém, escritas de outra forma.

Vamos nos aprofundar melhor em cada variância das classes internas.