Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duplicação de instanciação ??

Quando eu instancio um objeto do tipo Conta , ele automaticamente já instancia um objeto do tipo Cliente no meu atributo titular:

class Conta{
    private double saldo;
    private int numero;
    private int agencia;
    private Cliente titular = new Cliente();

Quando vou fazer os testes preciso instanciar um novo objeto agora como meu novo cliente:

public class TestaGetterESetters {
    public static void main(String[] args) {
        Conta conta = new Conta();
        // Aqui em baixo
        Cliente jhuan = new Cliente(); 
        conta.setTitular(jhuan);
        conta.getTitular().setNome("Jhuan Magno");
        conta.deposita(3000);
        System.out.println("O Cliente: "+conta.getTitular().getNome()+", tem o saldo de R$"+conta.getSaldo());
    }
}

Isso significa que a primeira instanciação está apenas ocupando espaço na memória ???

2 respostas
solução!

Cara, nesse modelo que você apresentou acima, sim, em um determinado momento o primeiro cliente vai ficar na memoria, mas por não ser referenciado por nenhuma parte do código o GC irá coletá-lo e destruí-lo. Mas, aproveito para te dizer que você nao precisa dessas linhas aqui:

Cliente jhuan = new Cliente(); 
conta.setTitular(jhuan);

bastaria fazer direto:

conta.getTitular().setNome("Jhuan Magno");

Pois seria aproveitado o objeto Cliente criado no momento da criação do objeto Conta

Entendi. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software