Ainda não assisti as aulas de passo a passo. Estou na aula 2 do módulo 4. Sem olhar, essa é a solução do desafio. Sintam-se livres para opinar ou consultar.
BancoOnline.java:
import java.util.Scanner;
public class BancoOnline {
String donoDaConta = "Karina";
String tipoDaConta = "Corrente";
Double saldoDaConta = 0.0;
double valor;
Scanner scanner = new Scanner(System.in);
int option = 0;
public void imprimeMenu(){
System.out.println("1 ---Adiciona saldo--- \n" +
"2 ---Transfere valor--- \n" +
"3 ---Verifica o saldo--- \n" +
"4 ---Mostra conta--- \n" +
"5 ---Sair--- \n" +
"Digite a opção desejada: ");
option = scanner.nextInt();
switch (option){
case 1:
System.out.println("Entre com o valor: ");
valor = scanner.nextDouble();
adicionaDinheiro(valor);
imprimeMenu();
break;
case 2:
System.out.println("Entre com o valor: ");
valor = scanner.nextDouble();
tiraDinheiro(valor);
imprimeMenu();
break;
case 3:
consultaDinheiro();
imprimeMenu();
break;
case 4:
consultaDadosConta();
imprimeMenu();
case 5:
System.out.println("Saindo da aplicação");
scanner.close();
break;
default:
System.out.println("Opção inválida");
}
}
private void consultaDadosConta() {
System.out.println("Titular da conta: "+ donoDaConta +"\n"
+"Tipo da conta: " +tipoDaConta + "\n"
+ "Saldo: "+ saldoDaConta );
}
public void adicionaDinheiro(Double valorAdicionado){
if(valorAdicionado<0){
System.out.println("Entre com um valor positivo");
}
saldoDaConta = saldoDaConta + valorAdicionado;
}
public void tiraDinheiro(Double valorRetirado){
if(valorRetirado<0){
System.out.println("Transferências apenas de valores positivos");
}
if(saldoDaConta - valorRetirado < 0){
System.out.println("Saldo insuficiente");
}
else {
saldoDaConta = saldoDaConta - valorRetirado;
}
}
public void consultaDinheiro(){
System.out.println("Saldo: "+ saldoDaConta);
}
}
Main.java:
public class Main {
public static void main(String[] args) {
BancoOnline bancoOnline = new BancoOnline();
bancoOnline.imprimeMenu();
}
}
PS: Não fiz tratamento dos tipos de dados numéricos porque entendi que o tipo menor cabe no maior. Testei e não achei um problema. Mesmo que o usuário entre com um Int, o sistema registra um Double. Se entra 1, na hora de imprimir o saldo, aparece 1.0 etc.