Mostrando postagens com marcador Java. Mostrar todas as postagens

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.


Olá!

Hoje falarei um pouco sobre os métodos equals() e hashCode(), assunto que não é novo mas ainda é muito utilizado e também é tratado na prova de certificação OCJP 6. 

Por mais que pareça estranho, ambos os métodos caminham juntos quando tratamos de Collections, e portanto, devem ser perfeitamente compreendidos para saber quando e como usá-los de forma eficiente.

equals()

Esse método é utilizado para verificar se dois objetos são significativamente iguais. Diferente do sinal "==" que verifica os bits do objeto (em outras palavras, se duas referências de objeto apontam para o mesmo objeto), o método equals() verifica o valor do objeto.

Esse método vem da classe Object, e na classe Object sua função é a mesma do sinal "==". As classes String e os Wrappers por sua vez já implementam sua sobrescrita afim de validar o valor significativo carregado no objeto.

Nota 1: É importante implementar sua sobrescrita em suas próprias classes justamente para verificar se dois objetos da classe em questão são iguais, do contrário, ele terá a mesma função do sinal "=="e dois objetos só serão considerados iguais se duas referências apontarem para o mesmo objeto.