Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Conta Bancária

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Cliente cliente1 = new Cliente("Diego Miguel Chagas", "Conta Corrente", 10000.00);
        int opcao = 0;

        while (opcao != 4) {

            System.out.println("""
                    OPERAÇÕES:
                    
                    1 - Consultar Saldos
                    2 - Depósito
                    3 - Saque
                    4 - Sair
                    
                    Digite a opção desejada: """);
            Scanner opcaoTeclado = new Scanner(System.in);

            while (!opcaoTeclado.hasNextInt()) {
                System.out.println("Opção inválida. Deve ser digitado um número entre 1 e 4. Tente novamente: ");
                System.out.println("""
                    OPERAÇÕES:
                    
                    1 - Consultar Saldos
                    2 - Depósito
                    3 - Saque
                    4 - Sair
                    
                    Digite a opção desejada: """);
                opcaoTeclado = new Scanner(System.in);
            }

            opcao = opcaoTeclado.nextInt();

            switch(opcao) {
                case 1:
                    System.out.println(cliente1.getExtrato());
                    break;
                case 2:
                    System.out.print("Digite a quantia a ser depositada: ");
                    Scanner valDeposito = new Scanner(System.in);
                    if (valDeposito.hasNextDouble()) {
                        double deposito = valDeposito.nextDouble();
                        cliente1.setDepositaValor(deposito);
                        break;
                    } else {
                        System.out.println("Valor digitado inválido. Repita a operação.");
                        break;
                    }
                case 3:
                    System.out.println("Digite a quantia a ser sacada: ");
                    Scanner valSaque = new Scanner(System.in);
                    if (valSaque.hasNextDouble()) {
                        double saque = valSaque.nextDouble();
                        cliente1.setSaqueValor(saque);
                        break;
                    } else {
                        System.out.println("Valor digitado inválido. Repita a operação.");
                        break;
                    }
                case 4:
                    break;
                default:
                    System.out.println("Opção inválida. Deve ser digitado um número entre 1 e 4. Tente novamente: ");
                    break;
            }
        }
    }
}
public class Cliente {
    private String nome;
    private String tipoDeConta;
    private double saldoInicial;

    public Cliente (String nome, String tipoDeConta, double saldoInicial) {
        this.nome = nome;
        this.tipoDeConta = tipoDeConta;
        this.saldoInicial = saldoInicial;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipoDeConta() {
        return tipoDeConta;
    }

    public void setTipoDeConta(String tipoDeConta) {
        this.tipoDeConta = tipoDeConta;
    }

    public double getSaldoInicial() {
        return saldoInicial;
    }

    public void setSaldoInicial(double saldoInicial) {
        this.saldoInicial = saldoInicial;
    }

    public void setDepositaValor (double deposito) {
        saldoInicial += deposito;
        System.out.println(getExtrato());
    }

    public void setSaqueValor (double saque) {
        if (saldoInicial - saque >= 0) {
            saldoInicial -= saque;
            System.out.println(getExtrato());
        } else {
            System.out.println("Saldo insuficiente para o saque.");
            System.out.println(getExtrato());
        }

    }

    public String getExtrato () {
        return String.format("O saldo atualizado em %s é R$%.2f.\n========================\n", tipoDeConta, saldoInicial);
    }

    @Override
    public String toString() {
        return """
                **************************
                DADOS INICIAIS DO CLIENTE:
                =========================
                NOME: %s.
                TIPO DE CONTA: %s.
                SALDO INICIAL: R$%.2f.
                """.formatted(nome, tipoDeConta, saldoInicial);
    }
}

Observação: Como já tenho um pouco de conhecimentos de classes e métodos, resolvi o problema juntando os conhecimentos adquiridos neste curso, com os que já possuía sobre estes temas, desenvolvendo a aplicação conforme acima.

Acredito que não restaram situações que dessem margem ao usuário para cometer erros que quebrassem a aplicação na execução.

2 respostas
solução!

Uma dica pra melhorar o codigo poderia colocar um menu pra digitar os dados dos clientes, fazer com que o saldo quando for criado uma conta comece em 0. Só umas dicas pra vc ir aprimorando os conhecimentos.

Boa! Vou implementar, a título didático.

Valeu o feedback!