Dentro dos métodos de uma classe, o desenvolvedor deve colocar as operações que o método deve realizar. Além das operações, o desenvolvedor também precisa se preocupar, para não deixar o objeto ficar em um estado inválido. Um estado inválido não é um erro de compilação ou execução. Um estado inválido de um objeto pode ser quando algum valor de um atributo guarda um valor que não é adequado à lógica do seu programa. Observe o código abaixo.
1 public class CaixaEletronico {
2 double dinheiro;
3
4 public void depositar(double dinheiro) {
5 this.dinheiro += dinheiro;
6 System.out.println("Depósito realizado com sucesso");
7 }
8 public void sacar(double dinheiro) {
9 if (dinheiro > this.dinheiro) {
10 System.out.println("O caixa não possui essa quantia");
11 } else {
12 this.dinheiro -= dinheiro;
13 System.out.println("Saque realizado com sucesso");
14
15 }
16 }
17
18 public static void main(String[] args) {
19 CaixaEletronico caixa = new CaixaEletronico();
20 caixa.depositar((double) 150);
21 caixa.depositar ((double) 250);
22 caixa.sacar((double) 300);
23 caixa.sacar((double) 300);
24 }
25 }
Considerando o texto e o código acima, avalie as afirmações abaixo.
I – Não há necessidade de converter explicitamente os valores inteiros para "double" do jeito que está no método "main", pois o tipo "double" é maior que o tipo inteiro e ambos são números.
II – O método "depositar" poderia ter uma verificação para a quantidade de dinheiro no caixa não ser maior que um milhão, supondo que não caberia mais dinheiro na máquina.
III – A verificação no método "sacar" é necessária, pois ela não deixa o objeto ficar em um estado inválido, que seria uma quantidade de dinheiro negativa.
IV – O código mostrado força o caixa a sempre ter dinheiro, não deixando que tudo seja sacado. Se alguém tentar sacar todo o dinheiro, a mensagem "O caixa não possui essa quantia" é exibida.
É correto o que se afirma em:
Alternativas
Alternativa 1:
I e II, apenas.
Alternativa 2:
II e III, apenas.
Alternativa 3:
III e IV, apenas.
Alternativa 4:
I, II e III, apenas.
Alternativa 5:
II, III e IV, apenas.
Soluções para a tarefa
Respondido por
5
Resposta:
Alternativa 4:
I, II e III, apenas.
Explicação:
I - Realmente não há a necessidade converter int para double, mas sim double para int
II - seria interessante realmente limitar o valor de deposito, como essa é apenas uma suposição verdadeira.
II - O método faz validações para que não se tente sacar mais do que possui em fundo de caixa
IV - Essa afirmação não se faz verdadeira, pois o usuário pode sacar até o ultimo centavo, desde que possua o valor.
Perguntas interessantes