1
resposta

[Projeto] Resposta

O problema do código anterior é que, apesar de utilizar o encapsulamento, que é uma boa prática de programação ao proteger os dados (atributos) de acessos diretos, ele ainda permite que o saldo da conta seja modificado diretamente através do método setSaldo(). Isso quebra o conceito de encapsulamento.

No encapsulamento, os atributos de uma classe devem ser protegidos de alterações externas diretas, especialmente no caso de atributos como saldo, que representam o estado financeiro da conta. Para garantir a integridade do sistema, é importante controlar como os dados são modificados. O método setSaldo() pode permitir que o saldo seja ajustado de maneira insegura, sem passar pelos controles do método deposita() ou saca(), que são as únicas maneiras corretas de alterar o saldo de uma conta.

Solução: Para manter o princípio do encapsulamento de forma mais robusta, o método setSaldo() poderia ser removido ou modificado para não permitir ajustes diretos do saldo. A modificação do saldo deveria ser feita somente por meio de ações controladas, como depósitos e saques, que já têm lógica de validação associada. Aqui está como poderia ser a modificação:

java Copiar Editar // Remover o setSaldo() para evitar que o saldo seja alterado diretamente. Além disso, poderia ser interessante adicionar validações extras ou métodos que protejam ainda mais o saldo, como garantir que o valor depositado seja positivo ou tratar erros de forma mais precisa.

1 resposta

Olá Camila! Tudo certo?

Você identificou corretamente que o método setSaldo() pode comprometer o princípio do encapsulamento. Ao permitir que o saldo seja alterado diretamente, o método expõe o estado interno da classe a modificações externas, o que pode levar a inconsistências no comportamento da aplicação.

Como você mencionou, uma solução seria remover o método setSaldo() e garantir que alterações no saldo ocorram apenas através dos métodos deposita() e saca(), que já possuem lógica de validação. Isso assegura que o saldo só seja modificado de maneira controlada e segura.

Além disso, é uma boa prática adicionar validações nos métodos de depósito e saque. Por exemplo, você pode garantir que o valor a ser depositado seja positivo e que o saque não exceda o saldo disponível.

Bons estudos!