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??
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??
É 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?
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.