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 ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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 ?
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.