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: Выведите сводку по счету
    }
}

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

Потренируйтесь самостоятельно: Онлайн-компилятор Java