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

Exercício 7 aula 1

Ao colocar incluir propriedade ( get; private set ) no atributo Saldo (classe Conta), como eu faço para atribuir um valor para esse atributo no form?

Pois após essa alteração, não está mais compilando o meu código devido a seguinte linha que está no Form: Conta.saldo = 3000;

6 respostas

Oi Denise!

A ideia da refatoração do exercício "Encapsulamento da Conta" é justamente essa: não poder mais alterar a propriedade Saldo de fora da classe (e nem a partir do form). Por isso o acessor set como privado.

Portanto, você precisa comentar a linha que está gerando o erro de compilação, para não tentar acessar mais o saldo a partir do form. A ideia é que somente os métodos Saca e Deposita sejam públicos e acessados de fora da classe.

Boa sorte e bons estudos!

Oi Marcelo, Entendi, então se eu quiser atribuir um valor a um atributo que possui propriedade private set, eu tenho que fazer através de método? Por exemplo: Endereço é private set, classe Cliente, eu devo fazer um método nessa classe que permite a atribuição e depois chamar esse método no "Form" passando o valor que eu quero inserir?

Denise,

É exatamente isso. É uma forma de blindar os atributos desta classe para que apenas ela tenha acesso a modificações.

[]s,

solução!

Entendi. Muito obrigada pela ajuda :D

Isso mesmo, Denise. Complementando seu exemplo: imagine a propriedade Endereco da classe Cliente como exemplo de private set. Agora imagine que a única maneira de um usuário de uma loja virtual mudar o endereço de entrega é fornecer o CEP a partir de uma página web. Então agora temos o CEP como public set e o Endereco como private set. Quando o CEP é modificado, a classe Cliente vai buscar no serviço dos Correios pelo CEP o nome da rua, avenida, bairro, cidade, estado, etc. e a própria classe Cliente modifica sua propriedade Endereço. Então temos um exemplo em que a mudança do endereço ocorre "por dentro" da classe, evitando que o usuário digite endereços que não existam e permitindo apenas o acesso autorizado, que é através do CEP.

Com esse exemplo não tem como ficar na dúvida :D. Obrigada Marcelo.