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

Sobre composição de objetos

Quando dizemos composição de objetos, significa a ligação com uma classe para outra? Ex:

 contaDoPaulo.titular = paulo;
 conta.setTitular(paulo);

Esses dois estamos fazendo a composição de objetos ?

1 resposta
solução!

Olá, deixa eu ver se eu entendi...

Nesses dois exemplos, ambos fazem a mesma ação, o que mudaria são os modificadores para que a primeira linha funcione normalmente.

Em:

 contaDoPaulo.titular = paulo;

você está atribuindo um valor ao titular, através de outra classe, nesse caso, quando declarado o titular na primeira classe, a mesma só poderia ser atribuída em outra sendo a variavel public. ex:

public String titular;

Sendo assim, na primeira linha você definiu que o titular é paulo, mesmo sendo atribuida através de outra classe, naquela que você declarou o valor será paulo

Já segunda linha, a variável titular provavelmente foi criada como private ou protected na primeira classe, podendo ser acessada, e atribuída em outras classes através dos getters e setters, como no seu exemplo.

Quando você define através do setTitular que o valor é paulo, ele não altera o valor na classe que foi declarada, como na primeira linha. Nesse caso ele vai atribuir o valor na instancia que você criou a partir da classe, protegendo o valor inicial da primeira classe, podendo guardar vários valores a partir de varias instancias! Ex: digamos que você fez isso:

Conta conta = new Conta();
    conta.setTitular("paulo");

o valor será da conta e não da classe Conta

Que também poderia ser:

Conta contaDaJade = new Conta();
    contaDaJade.setTitular("jade");

Atribuindo como titular jade, mas somente na instância contaDaJade, o valor da classe Conta permanece o mesmo.