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
Resposta:
I – Correto.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 – Correto.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 –Correto. 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 negativo.
IV –Falso,(o codigo permite sim retirar todo dinheiro) 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.
Em relação ao código computacional acima é correto o que se afirma em I, II e III (Alternativa 4).
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.
Falso, pois no código existe sim a opção de retirar todo o dinheiro, ou seja, de fato o código obriga o caixa a sempre ter dinheiro, mas não impede que o saque por inteiro seja realizado, o que pode ser observado das linhas 19 até as linhas 25 do código computacional.
Isto significa que existe sim a opção de fazer um saque com o valor total disponível no caixa, por isso, a alternativa IV está incorreta.
Portanto, a alternativa IV é a única alternativa incorreta.
Saiba mais:
https://brainly.com.br/tarefa/20790680
Bons estudos!