image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Tiago Ferreira
Tiago Ferreira29/06/2025 21:06
Compartilhe

Java - Instância?

    Quando você instancia uma classe em Java, está criando um novo objeto, e esse objeto passa a ocupar um espaço próprio na memória, com seus atributos e comportamentos.

    Exemplo:

    Pense que você é um arquiteto. Você cria um projeto (classe) de uma casa: com quartos, janelas, portas, tudo definido no papel.

    Mas até aí… ainda não existe nenhuma casa real, certo? Só o projeto.

    Agora, quando você pega esse projeto e constrói a casa de verdade, nasce a instância — ou seja, o objeto.

    Cada casa construída a partir do projeto ocupa um espaço físico, com suas próprias características (cor, mobília, moradores...). Da mesma forma, cada objeto em

    Java ocupa um espaço de memória , com seus próprios valores.

    image

    Aqui, minhaCasa é um objeto criado a partir da classe Casa. Esse processo se chama instanciação, e agora minhaCasa existe na memória do computador, com suas próprias características.

    Exemplo de duas casas criadas em pontos de memorias diferentes:

    image

    Agora temos duas casas separadas, com os mesmos valores, mas cada uma em um lugar diferente da memória. Elas são dois objetos distintos.

    ❌ Comparando instâncias diretamente

    image

    Mesmo que os atributos sejam idênticos, a saída será:

    image

    Porque == em Java, quando usado com objetos, compara se estão no mesmo endereço de memória, e não se têm os mesmos valores.

    ✅ Forma correta de comparar o conteúdo

    Se quisermos comparar o conteúdo das duas casas, temos que sobrescrever o método equals na classe Casa ou comparar os atributos manualmente:

    Comparando Atributos:

    image

    Resultado:

    image

    Sobrescrevendo o método equals na classe Casa:

    image

    Exemplo:

    image

    Com a sobrescrição do método equals, agora é possível comparar objetos que ocupam posições de memória distintas. Eles serão considerados iguais porque a comparação será feita com base no conteúdo e não no endereço de memória.

    Compartilhe
    Recomendados para você
    Deal Group - AI Centric .NET
    Randstad - Análise de Dados
    BairesDev - Machine Learning Training
    Comentários (1)
    DIO Community
    DIO Community - 01/07/2025 09:04

    Tiago, você explicou o conceito de instância em Java com uma didática impecável. A analogia com o projeto da casa é uma das formas mais claras e acessíveis de ilustrar a diferença entre classe e objeto, e mostra o quanto dominar bem esses fundamentos é essencial para entender como o Java gerencia memória e estrutura de dados.

    A parte sobre comparação de objetos também foi muito bem colocada. Muita gente que está começando se confunde ao usar == para comparar objetos e seu exemplo do método equals() deixa isso cristalino.

    Qual tema fundamental você considera o próximo ideal para quem acabou de entender o conceito de instância?