Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Método equals

Olá, eu não entendi porque o número da conta foi comparado com "==" e o nome com o "equals".

@Override
        public boolean equals(Object obj) {
            Conta outra = (Conta) obj;
            return     this.numero == outro.numero && 
                    this.nome.equals(outro.nome);
        }
1 resposta
solução!

Hola Pedro,

  • == é utilizado para se comparar valor de variáveis do tipo primitivo (boolean, char, float...).
  • equals() é um método para comparar o valor significativo de um objeto. Ele verifica a 'equivalência' entre objetos.

Quando é usado == para comparar dois objetos, ele verificará se ambos apontam para o mesmo objeto em memória.

Ex:


    Pessoa pessoa1 = new Pessoa();
    Pessoa pessoa2 = new Pessoa();
    Pessoa pessoa3 = pessoa1;

    // pessoa1 == pessoa2 --> 'false' porque não apontam para o mesmo objeto em memória
    // pessoa1 == pessoa3 --> 'true' porque apontam para o mesmo objeto em memória
    // pessoa1.equals(pessoa2) --> 'true' porque possuem os mesmos valores (no caso, nenhum)
    // pessoa1.equals(pessoa3) --> 'true' porque possuem os mesmos valores (no caso, nenhum)