Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

3 dúvidas

Boa tarde!

Me surgiram 3 dúvidas.

Primeiro que queria entender pq foram criadas as propriedades Saldo e ValorSaque dentro da classe SaldoInsuficienteException ? Elas não são usadas pra nada e o programa funciona sem elas.

Outra coisa, dentro do método Sacar(), na hora de preencher os argumentos da exceção SaldoInsuficienteException, é usado "Saldo", ou seja, a propriedade Saldo, e não o campo _saldo, que é onde armazena o valor do saldo. Tanto faz usar um ou outro ou existe alguma convenção sobre isso?

Por último o que não entendi foi que a lógica de transferir um valor maior que o saldo, no método Transferir(), foi substituída pelo método Sacar(), só que dentro desse método Sacar() a string contida na exceção SaldoInsuficienteException foi pensada para o método Sacar(), e não para Transferir(). De modo que, toda vez que há uma tentativa de transferência de um valor maior que o saldo a mensagem que aparece no console é: Tentativa de saque no valor de " + valorSaque + " em uma conta com saldo de " + saldo. Não seria melhor criar uma exceção própria para transferir?

Obrigado pra quem puder esclarecer! vlwwww

1 resposta
solução!

Olá Ley, tudo bem?

Na verdade o Saldo e ValorSaque para armazenar um valor referente a esses dois valores. Todos os métodos teriam que receber por parâmetro esses dois valores, caso as propriedades não existissem, para fazer uso delas. A mensagem deste uso é: "Se precisar utilizar esse valor em algum outro ponto do código além do método que recebe esses valores, crie uma propriedade para eles."

Quanto a segunda dúvida, o mais comum é sempre utilizar a propriedade ao invés do campo. O campo armazena o valor e você pode utilizar o método get do campo, mas tenha preferência em utilizar a propriedade. Sempre utilize a propriedade para o método set, as vezes pode ter alguma lógica no setter e é sempre bom evitar atribuir um valor diretamente ao campo. Se for possível, utilize o campo apenas para armazenar valores, qualquer interação com este valor é melhor utilizar a propriedade.

Sobre a última dúvida, isso é possível sim. O Guilherme optou por não mexer nesta parte provavelmente para agilizar a aula. O conceito sobre o funcionamento das exceções, foi explicado e cobrir todos os casos realmente leva tempo. Mas a ideia é que se o aluno encontrar uma lógica que funcione melhor, deve aplicar no programa, desde que não impacte no funcionamento de outras partes. Localizar pontos de melhorias numa aplicação é uma ótima maneira para fixar o conteúdo.

Bons estudos!