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

Objeto dentro de outro objeto

Olá pessoal,

minha dúvida é a seguinte: vamos supor que eu instancio um objecto dentro de outro objeto. Por exemplo: Obj1 -> Obj2 (objecto 2 foi instanciado dentro do objeto 1)

É possível que meu Obj2 altere os valores dos atributos do Obj1??

3 respostas

É possível, mas não deveria. Porque isso quebraria regras de encapsulamento e a meu ver o Obj2 não deveria saber do Obj1

Então, para você entender melhor o que estou fazendo. Estou criando um sistema de banco simples, onde tenho a classe Conta. Estou supondo que quando se cria uma conta nesse banco venha junto um cartão de débito. Então criei uma outra classe chamada Cartao.

Minha ideia é: quando se instancia a classe Conta, dentro dessa classe chama-se a classe Cartao e cria-se um cartão ali dentro. Assim, se eu criar um objeto de Conta:

fulano = Conta("Fulano de tal")

Dentro desse objeto vai existir um objeto

cartao_debito = Cartao("Fulano")

Só que como o objeto cartão_debito está dentro do objeto fulano, ele teria que ter a possibilidade de alterar o atributo saldo do objeto fulano. Mesmo assim eu estaria quebrando o encapsulamento? Você sabe se teria alguma outra maneira mais "correta" de fazer isso?

solução!

Na verdade, deveria ter uma outra abstração que faria essa alteração de saldo e somente quem altera o saldo é a conta.

Pq a conta tem saldo...

Cartão seria só um meio que altera o saldo.

Algo como.

fulano.alteraSaldo(cartao_debito)

Ou algo assim.