Informática, perguntado por rafael17foz, 1 ano atrás

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 marcosbrinner2
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