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

[Projeto] [Solução] [Projeto] Desafio Final by: CaioCesarP

Para esse desafio, para melhor organização de código, foi separado em dois arquivos java.

Account.java -> Classe responsável pela criaç

/**
 * Account
 */
public class Account {
    private String name;
    private String type;
    private double balance;

    public Account(String name, String type, double balance) {
        this.name = name;
        this.type = type;
        this.balance = balance;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getBalance() {
        return balance;
    }

    public void withdraw(double amount) {
        if (this.balance - amount < 0) {
            System.out.println(String.format("Saldo insuficiente. Saldo atual: R$ %.2f", this.getBalance()));
            return;
        }

        this.balance -= amount;
        System.out.println(String.format("Saque feito com sucesso. Saldo atual: R$ %.2f", this.getBalance()));
    }

    public void deposit(double amount) {
        this.balance += amount;
        System.out.println(String.format("Deposito feito com sucesso. Saldo atual: R$ %.2f", this.getBalance()));
    }

    public void transfer(double amount, Account account) {
        if (this.balance - amount < 0) {
            System.out.println(String.format("Saldo insuficiente. Saldo atual: R$ %.2f", this.getBalance()));
            return;
        }

        this.withdraw(amount);
        account.deposit(amount);
        System.out.println(String.format("Transferência feita com sucesso. Saldo atual: R$ %.2f", this.getBalance()));
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

}

NewAccount.java -> Classe responsável por testar as operações e fazer a exibição do programa

import java.util.Scanner;

/**
 * NewAccount
 */
public class NewAccount {

    public static void clearScreen() {
        System.out.print("\033[H\033[2J");
        System.out.flush();
    }

    public static void starterAccount(Account account) {
        System.out.println(
                String.format(
                        "***********************%nDados do cliente:%n%nNome: %s%nTipo da conta: %s%nSaldo: R$ %.2f%n***********************",
                        account.getName(), account.getType(), account.getBalance()));
    }

    public static void operations() {
        System.out.println(
                String.format(
                        "%n%nOperações disponíveis:%n%n0- Dados da conta%n1- Consultar saldos%n2- Receber valor%n3- Transferir valor%n4- Sair  Digite a opção desejada:"));
    }

    public static void main(String[] args) {

        Account firsAccount = new Account("Jacqueline Oliveira", "Corrente", 2500.00);
        Account randomAccount = new Account("Caio César", "Corrente", 0.00);

        int operation = 0;
        double amount = 0;

        try (Scanner read = new Scanner(System.in)) {
            while (operation != 4) {
                clearScreen();

                switch (operation) {
                    case 0:
                        starterAccount(firsAccount);
                        break;

                    case 1:
                        System.out.println(String.format("Saldo: R$ %.2f", firsAccount.getBalance()));
                        break;

                    case 2:
                        System.out.println("Informe o valor a receber:");
                        amount = read.nextInt();
                        firsAccount.deposit(amount);
                        break;

                    case 3:
                        System.out.println("Informe o valor que deseja sacar:");
                        amount = read.nextInt();
                        firsAccount.withdraw(amount);
                        break;

                    case 4:
                        return;

                    default:
                        System.out.println("Opção inválida.");
                        break;
                }

                operations();
                operation = read.nextInt();
            }
        } catch (Exception error) {
            System.err.println(error.getMessage());
        }

    }

}
2 respostas
solução!

Olá Caio,

O código que você postou é um exemplo de como separar a lógica do programa em diferentes arquivos Java. No caso, temos a classe Account.java, que é responsável por gerenciar a conta bancária, e a classe NewAccount.java, que é responsável por testar as operações e fazer a exibição do programa. Isso é uma boa prática de programação, pois ajuda a manter o código mais organizado e legível.

Além disso, o código que você postou também mostra como utilizar algumas funcionalidades em Java, como a criação de classes, métodos, atributos e a utilização de condicionais e estruturas de repetição.

Parabéns

Oie Otávio,

Obrigado pelo feedback! Tentei utilizar o que eu já sabia do curso que foi descontinuado e juntar com as requisições atuais.

Qualquer opinião é muito bem vinda, e novamente obrigado pelas observações!

Abraços.