Java parte 6: conhecendo o Java.util Aula 4, atividade 1.
O professor diz o seguinte quanto ao código abaixo: "Como sabemos, a referência cc3 não existe na lista, contudo, os dados da conta são exatamente os mesmos da cc2. Na prática, as duas referências representam uma mesma conta, um mesmo objeto na memória."
Minha dúvida: quando criamos dois ou mais objetos com new cada um deles são criados em endereço diferente na memória? Se são, como cc2 e cc3 podem estar representando uma mesma conta, um mesmo objeto na memória se cada referência representa um new diferente: Conta cc2 = new ContaCorrente( 22, 11); Conta cc3 = new ContaCorrente( 22, 11); ? Não são dois objetos distintos com argumentos iguais? o método equals( ) depois de reescrito compara objetos ou seus argumentos?
//código omitido
//Generics ArrayList lista = new ArrayList();
Conta cc = new ContaCorrente(22, 11);
lista.add(cc);
Conta cc2 = new ContaCorrente(22, 22);
lista.add(cc2);
Conta cc3 = new ContaCorrente(22, 22);
boolean existe = lista.contains(cc3);
System.out.println("Já existe? " + existe);
for(Conta conta : lista) {
System.out.println(conta);