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

[Dúvida] encapsulamento e composição.

Já usando os atributos encapsulados, após a instanciação de duas classes iremos dizer que uma receberá a outra usando o método 'set' ex: "conta.setTitular(cliente);" porém por quê quando quero atribuir um valor para a classe "cliente" uso, ex: "conta.getTitular().setNome();" e não "conta.setTitular().setNome();"?.

2 respostas

Boa Noite David.

Eu não entendi muito bem a questão mais parece que você quer mudar o nome do cliente através da função setTitular() da classe 'conta' sem atribui-lo diretamente na função como no seu exemplo, apenas usando atributos encapsulados. Se for esse o caso eu acho que a maneira correta seria essa:

conta.getTitular().setNome(String NovoNome)

Nesse caso é necessário você atribuir um novo nome quando se usa o setNome(), mesmo que use this.getNome() na função da classe, só está atribuindo o nome atual. Espero ter ajudado.

solução!

Boa noite David, tudo bem?

Neste caso voce esta utilizando composição de objetos (conta e titular).

Se voce fosse acessar estes objetos individualmente e fosse "setar" alguma informação utilizaria diretamente o método que configura o valor pois voce tem acesso direto aos objetos, exemplo:

Conta conta = new Conta();
conta.setNumero(123456);

Titular titular = new Titular();
titular.setNome("Fernando");

Porem voce esta acessando um objeto dentro de outro, desta forma voce precisa trazer a referencia do objeto interno que quer alterar, ai entra o caso que voce falou, exemplo:

conta.getTitular().setNome("Fernando");

Sei que no começo é meio confusa a composição de objetos, seus acessos e suas modificações mas como tempo voce se acostuma.

Uma forma de facilitar no inicio é "desmembrar" os objetos, por exemplo:

Titular titular = conta.getTitular();
titular.setNome("Fernando");

Isso torna o codigo maior so que fica mais facil de ler.

Abraço