image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%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ê
    BairesDev - Machine Learning Training
    Savegnago - Lógica de Programação
    meutudo - Mobile Developer
    Comentários (0)