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

Duvida sobre referencia

public class testaBanco { public static void main(String[] args) { Cliente paulo = new Cliente(); paulo.nome = "Paulo Silveira"; paulo.cpf = "222.222.222-22"; paulo.profissao = "programador";

    Conta contaDoPaulo = new Conta();
    contaDoPaulo.deposita(100);

    **contaDoPaulo.titular = paulo;**
    System.out.println(contaDoPaulo.titular.nome);

}

}

Neste exemplo foi criado o cliente paulo e depois passado a referencia do cliente paulo na contaDoPaulo então temos o objeto cliente criado e o objeto conta criado

public class testaContaSemCliente { public static void main(String[] args) { Conta contaDaMarcela = new Conta();

**contaDaMarcela.titular = new Cliente();**
contaDaMarcela.titular.nome = "marcela";

System.out.println(contaDaMarcela.titular.nome);

} }

Neste outro exemplo de conta Sem cliente, foi criado diretamente a conta e passado a referencia de Cliente então temos o objeto contaDaMarcela.titular onde contaDaMarcela.titular.nome esta populado com "marcela". O valor "marcela" existe somente em contaDaMarcela.titular.nome e o objeto Cliente não existe ?

2 respostas
solução!

Oie Leandro, tudo bem contigo?

Em ambos os casos o objeto "Cliente" foi criado, sendo como é feito a única diferença.

Segue o paralelo abaixo:

Cliente paulo = new Cliente();
contaDoPaulo.titular = paulo;

// esse código acima faz exatamente a mesma coisa que esse abaixo:

contaDaMarcela.titular = new Cliente();

// a única diferença entre eles é que no primeiro foi criado uma variável "paulo" para guardar a referência do objeto "Cliente", já no segundo o objeto foi criado usando a variável "titular" que está dentro do objeto "contaDaMarcela".

Perceba que dentro da classe "Conta" já foi criado uma variável (atributo) para armazenar uma referência de um objeto "Cliente", segue abaixo:

public class Conta {

    private double saldo;
    private int agencia;
    private int numero;
    private Cliente titular;     // esse atributo aqui foi criado para armazenar uma referência do tipo "Cliente" ( new Cliente())
}

Por isso quando fazemos assim:

contaDaMarcela.titular = new Cliente();

Só estamos usando diretamente a variável "titular" que está dentro do objeto "contaDaMarcela" ao invés de criarmos uma nova variável para fazer essa mesma coisa, o que daria mais trabalho já que depois ainda teriamos que colocar dentro da variável "titular" de qualquer jeito. Segue os exemplos abaixo:

Jeito mais trabalhoso:

Cliente marcela = new Cliente();
contaDaMarcela.titular = marcela 

Mais simples:

contaDaMarcela.titular = new Cliente();

Por isso, no final em ambos os casos os objetos foram criados, a única diferença é na maneira.

Agora ficou mais claro?

Se ainda tiver qualquer dúvida estarei por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Muito obrigado Igor,

Meus parabens pela explicação muito bem detalhada e de facil compreenção.