1
resposta

[Projeto] Desafio Banco

public class Conta {

String nome;
boolean corrente = true;
double saldo;

public Conta(String nome, double saldo,int c) {
    this.nome = nome;
    this.saldo = saldo;
    if (c == 0){
        this.corrente = false;
    }
    this.getDados();
}
public Conta(){

}

public void getDados() {
    for (int i = 0; i <= 15; i++) {
        System.out.printf("*");
    }
    System.out.println();
    System.out.println("Dados do Cliente: ");
    System.out.println("Nome " + this.nome);
    System.out.printf("Tipo de conta: %s\n", this.corrente ? "Corrente" : "Poupança");
    System.out.printf("Saldo Inicial: %.2f\n", this.saldo);
    for (int i = 0; i <= 15; i++) {
        System.out.printf("*");
    }
    System.out.println("\n");
}

public void getSaldo() {
    System.out.println("Saldo atualizado" + this.saldo);
}

public void depositar(double valor) {
    this.saldo += valor;
    this.getSaldo();
}

public void retirar(double valor) {
    if (valor > this.saldo)
        System.out.println("Saldo insuficiente para concluir a transação");
    else {
        this.saldo -= valor;
        this.getSaldo();
    }


}

}

import java.util.Scanner;

public class Principal { public static void main(String[] args) {

    Conta conta = new Conta("Daniel",2500,0);
    Scanner sc = new Scanner(System.in);
    int opcao = 0;
    double valor = 0;


    while(opcao != 4){

        System.out.println("Operações:\n");
        System.out.println("1 - Consultar saldo");
        System.out.println("2 - Deposito");
        System.out.println("3 - Transferir");
        System.out.println("4 - Sair");

        switch(opcao = sc.nextInt()){
            case 1:
                conta.getSaldo();
                break;
            case 2:
                System.out.println("Digite o valor a ser depositado: ");
                valor = sc.nextDouble();
                conta.depositar(valor);
                break;
            case 3:
                System.out.println("Digite o valor a ser transferido: ");
                valor = sc.nextDouble();
                conta.retirar(valor);
                break;
            case 4:
                System.out.println("Saindo do programa :)");
                break;
            default :
                System.out.println("Opção Invalida :(");
        }

    }

    //conta.getDados();
}

}

1 resposta

Seu código parece estar bem estruturado e funcional. No entanto, há algumas observações e sugestões que podem melhorar a qualidade e legibilidade do código:

Construtores:

  • O construtor Conta(String nome, double saldo, int c) tem uma chamada para getDados() dentro dele. Isso pode ser confuso, pois a criação de um objeto normalmente não exibe dados. Seria mais apropriado mover essa chamada para um método separado, talvez chamado exibirInformacoesIniciais().

Método getDados():

  • O método getDados() poderia ser renomeado para algo mais descritivo, como exibirInformacoesConta().

Método getSaldo():

  • O método getSaldo() também poderia ser renomeado para algo mais descritivo, como exibirSaldoAtual().

  • Considere tornar os atributos nome, corrente e saldo privados (private) e fornecer métodos getter e setter para acessá-los. Isso segue os princípios de encapsulamento e pode facilitar a manutenção futura do código.

Validação de Entrada:

  • Adicione validações de entrada nos métodos depositar e retirar para garantir que valores negativos sejam passados.