Menu
Coddy logo textTech

Итоги — Менеджер банковского счета

Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 14 из 87.

challenge icon

Задание

Легко

Давайте создадим полноценную систему BankAccount, которая объединит все, что вы узнали об инкапсуляции, модификаторах доступа, геттерах, сеттерах и ключевом слове final.

Для организации кода вы создадите два файла:

  • BankAccount.java: Разработайте защищенный класс банковского счета, который оберегает конфиденциальные финансовые данные:
    • Неизменяемый номер счета, который никогда не может быть изменен после создания счета
    • Приватный баланс, который начинается с 0.0 и может быть изменен только через контролируемые методы
    • Приватное имя владельца, которое можно получить, но нельзя изменить напрямую
    • Конструктор, принимающий номер счета и имя владельца
    • Геттер для номера счета
    • Геттер для имени владельца
    • Геттер для баланса
    • Метод deposit(double amount), который пополняет баланс только в том случае, если сумма положительна, возвращая true в случае успеха или false в случае отказа
    • Метод withdraw(double amount), который списывает средства с баланса только в том случае, если сумма положительна И достаточно средств, возвращая true в случае успеха или false в случае отказа
    • Метод getAccountSummary(), который возвращает: "Account [accountNumber] | Owner: [ownerName] | Balance: $[balance]" (баланс отформатирован до 2 знаков после запятой)
  • Main.java: Создайте BankAccount и выполните серию транзакций. Вы получите пять входных данных: номер счета, имя владельца, сумма депозита, сумма первого снятия и сумма второго снятия. Выведите четыре строки:
    • Результат депозита: Deposit: true или Deposit: false
    • Результат первого снятия: Withdraw 1: true или Withdraw 1: false
    • Результат второго снятия: Withdraw 2: true или Withdraw 2: false
    • Итоговая сводка по счету

Вы получите пять входных данных по порядку: accountNumber (String), ownerName (String), depositAmount (double), withdrawAmount1 (double), withdrawAmount2 (double).

Для форматирования баланса до 2 знаков после запятой вы можете использовать String.format("%.2f", balance).

Попробуйте сами

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // Чтение входных данных
        String accountNumber = scanner.nextLine();
        String ownerName = scanner.nextLine();
        double depositAmount = scanner.nextDouble();
        double withdrawAmount1 = scanner.nextDouble();
        double withdrawAmount2 = scanner.nextDouble();
        
        // TODO: Создайте объект BankAccount с accountNumber и ownerName
        
        // TODO: Выполните депозит и выведите результат в формате "Deposit: true" или "Deposit: false"
        
        // TODO: Выполните первое снятие средств и выведите результат в формате "Withdraw 1: true" или "Withdraw 1: false"
        
        // TODO: Выполните второе снятие средств и выведите результат в формате "Withdraw 2: true" или "Withdraw 2: false"
        
        // TODO: Выведите сводку по счету
    }
}

Все уроки раздела Объектно-ориентированное программирование