Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Minha solução para o desafio

Arquivo ServicoBancario.java:

import java.util.Scanner;

public class ServicoBancario {

    String name = "Samuel";
    String tipoDeConta = "Corrente";
    double saldo = 2500;

    void startApp() {
        System.out.println("Dados iniciais do cliente:\n" +
                "Nome: " + name + "\n" +
                "Tipo de conta: " + tipoDeConta + "\n" +
                "Saldo inicial: R$" + saldo + "\n");

        showOptions();
    }

    void showOptions() {
        System.out.println("Operações:\n\n" +
                "1 - Consultar saldos\n" +
                "2 - Receber valor\n" +
                "3 - Transferir valor\n" +
                "4 - Sair\n\n" +
                "Digite a opção desejada: ");

        Scanner scanner = new Scanner(System.in);
        var escolha = 0;

        escolha = scanner.nextInt();

        switch (escolha){
            case 1:
                consultarSaldos();
                break;
            case 2:
                receberValor();
                break;
            case 3:
                transferirValor();
                break;
            case 4:
                System.out.println("Agradecemos o uso do sitema. Até logo!");
                break;
            default:
                System.out.println("Opção inválida. \n");
                showOptions();
        }
    }

    void consultarSaldos() {
        System.out.println("Saldo atual: " + saldo + "\n");

        showOptions();
    }

    void receberValor() {
        System.out.println("Digite o valor que será recebido: ");
        Scanner scanner = new Scanner(System.in);
        var valorRecebido = scanner.nextDouble();

        saldo += valorRecebido;
        System.out.println("Saldo atual: " + saldo + "\n");
        showOptions();
    }

    void transferirValor() {
        System.out.println("Digite o valor que será transferido: ");
        Scanner scanner = new Scanner(System.in);
        var valorTransferido = scanner.nextDouble();

        if (saldo - valorTransferido < 0) {
            System.out.println("Não há saldo suficiente. O valor não pôde ser transferido.\n");
            showOptions();
        }
        else {
            saldo -= valorTransferido;
            System.out.println("Saldo atual: " + saldo);
            showOptions();
        }
    }
}

Arquivo Main.java:

public class Main {
    public static void main(String[] args) {
        ServicoBancario servicoBancario = new ServicoBancario();
        servicoBancario.startApp();
    }
}
1 resposta

Boa noite, Samuel! Tranquilo?

Gostei demais da sua resposta, continue assim!

Mandou muito bem explorando a estrutura de classes em Java, apresentou com clareza o fluxo de operações bancárias e ainda destacou o uso de Scanner para interação com o usuário. Esse exercício mostra organização, domínio dos conceitos básicos e preocupação em simular um sistema funcional de forma prática.

Para aprimorar sua solução, algumas boas práticas são:

  • Tratamento de exceções: aplicar try/catch para lidar com entradas inválidas do usuário.
  • Encapsulamento: utilizar modificadores de acesso (private) e métodos get/set para proteger os atributos.
  • Modularização: separar responsabilidades em classes diferentes (ex.: Cliente, Conta, Operações) para facilitar manutenção.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você considera mais importante evoluir esse projeto adicionando segurança com encapsulamento ou expandindo funcionalidades como histórico de transações e relatórios?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!