Olá Isac!
Quando se faz a comparação de valores, os valores de duas variáveis inteiras (neste caso) ou outros tipos primitivos, os valores que são atribuídos à variável são comparados diretamente. Isso acontece porque o tipo int
tem um valor atribuído a ele. Mas quando vai comparar a contaDaGabriela
e contaDaGabrielaCosta
, essa comparação é feita referente ao endereço de memória em que os objetos estão alocados. Quando você atribui um novo objeto de uma classe (usa a palavra new
), você está associando para essa variável apenas o caminho desta variável na memória.
Neste segundo caso, usando contaDaGabriela == contaDaGabrielaCosta
, você está comparando se as referências aos objetos são iguais, mas quando você usa o new
, você cria outro objeto na memória, outra referência.
Mas se você comparar contaDaGabriela.Conta == contaDaGabrielaCosta.Conta
terá o resultado true
, pois está comparando os valores que está dentro da propriedade Conta
ao invés do endereço de memória dos objetos.
Segue alguns códigos simples e os resultados:
Ah, os resultados que aparecem algo como ApenasParaTestar.teste
são o namespace e o nome da classe. O Guilherme mostrará mais pra frente no curso como faz para trazer uma referência sobre o objeto está alocado na memória .
Espero ter ajudado!
Bons estudos!