Menu
Coddy logo textTech

Recapitulação - Gerenciador de Conta Bancária

Parte da seção Programação Orientada a Objetos do Journey de Java da Coddy — lição 14 de 87.

challenge icon

Desafio

Fácil

Vamos construir um sistema de BankAccount completo que reúne tudo o que você aprendeu sobre encapsulamento, modificadores de acesso, getters, setters e a palavra-chave final.

Você criará dois arquivos para organizar seu código:

  • BankAccount.java: Projete uma classe de conta bancária segura que proteja dados financeiros sensíveis:
    • Um número de conta imutável que nunca pode mudar uma vez que a conta é criada
    • Um saldo privado que começa em 0.0 e só pode ser modificado através de métodos controlados
    • Um nome de proprietário privado que pode ser recuperado, mas não alterado diretamente
    • Um construtor que recebe o número da conta e o nome do proprietário
    • Um getter para o número da conta
    • Um getter para o nome do proprietário
    • Um getter para o saldo
    • Um método deposit(double amount) que adiciona ao saldo apenas se o valor for positivo, retornando true para sucesso ou false se rejeitado
    • Um método withdraw(double amount) que subtrai do saldo apenas se o valor for positivo E existirem fundos suficientes, retornando true para sucesso ou false se rejeitado
    • Um método getAccountSummary() que retorna: "Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]" (saldo formatado para 2 casas decimais)
  • Main.java: Crie um BankAccount e realize uma série de transações. Você receberá cinco entradas: número da conta, nome do proprietário, valor do depósito, primeiro valor de saque e segundo valor de saque. Imprima quatro linhas:
    • O resultado do depósito: Deposit: true ou Deposit: false
    • O resultado do primeiro saque: Withdraw 1: true ou Withdraw 1: false
    • O resultado do segundo saque: Withdraw 2: true ou Withdraw 2: false
    • O resumo final da conta

Você receberá cinco entradas em ordem: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).

Para formatar o saldo para 2 casas decimais, você pode usar String.format("%.2f", balance).

Experimente você mesmo

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Ler as entradas
        String accountNumber = scanner.nextLine();
        String ownerName = scanner.nextLine();
        double depositAmount = scanner.nextDouble();
        double withdrawAmount1 = scanner.nextDouble();
        double withdrawAmount2 = scanner.nextDouble();
        
        // TODO: Criar um objeto BankAccount com accountNumber e ownerName
        
        // TODO: Realizar o depósito e imprimir o resultado como "Deposit: true" ou "Deposit: false"
        
        // TODO: Realizar o primeiro saque e imprimir o resultado como "Withdraw 1: true" ou "Withdraw 1: false"
        
        // TODO: Realizar o segundo saque e imprimir o resultado como "Withdraw 2: true" ou "Withdraw 2: false"
        
        // TODO: Imprimir o resumo da conta
    }
}

Todas as lições de Programação Orientada a Objetos