Вы находитесь на странице: 1из 3

Лабораторная работа №3

Задание 1
В этом задании вы используете массив для создания множественной ассоциации между банком и его
клиентами

Вы создадите класс Банк, который обслуживает несколько клиентов. Связь между банками и
клиентами будет осуществляться через массив объектов класса Customer в классе Банк. За
поддержание связи должен отвечать класс Банк. Необходимо будет также использовать атрибут для
хранения текущего количества клиентов.

1. Откройте проект banking


2. Создайте класс Bank
3. Создайте в классе Bank два поля: customers (массив объектов класса Customer) и
numberOfCustomers – количество клиентов. Проинициализируйте данные поля в конструкторе
по умолчанию. Для инициализации массива используйте любое достаточно большое целое
число (например, 50) – оно будет ограничивать максимальное количество клиентов банка.
4. Реализуйте методы класса Bank:
a. addCustomer – для создания нового клиента банка (параметры – имя и фамилия
клиента). Проверку на переполнение массива реализовывать не нужно
b. getNumOfCustomers – для возврата текущего количества клиентов
c. getCustomer – для возврата клиента по порядковому номеру (параметр – номер
клиента)
5. Протестируйте работу класса Bank

Задание 2
Вы создадите два новых класса банковских счета:
- накопительный счет: банк позволяет клиентам вкладывать/снимать деньги с накопительного счета в
любое время. Ежемесячно, сумма на накопительном счете увеличивается на определенный процент
- расчетный счет: банк позволяет клиентам вкладывать/снимать деньги с расчетного счета в любое
время. На расчетном счете присутствует услуга овердрафта: банк позволяет клиентам снимать
средства со счета, превышающие текущий баланс счета, но не более, чем на величину овердрафта,
заданную при создании счета. Допустимая величина овердрафта уменьшается при использовании и не
подлежит восстановлению.
1. Модифицируйте класс Account: измените спецификаторы доступа для поля balance и
конструктора на protected
2. Создайте класс SavingsAccount (накопительный счет), наследующий от класса Account.
3. В классе SavingsAccount создайте:
a. закрытое поле interestRate (месячная процентная ставка)
b. конструктор с двумя параметрами – начальным балансом счета и процентной ставкой;
конструктор должен вызывать конструктор родительского класса (Account)
4. Создайте класс CheckingAccount (расчетный счет), наследующий от класса Account.
5. В классе CheckingAccount создайте:
a. закрытое поле overdraftAmount (допустимая величина овердрафта)
b. конструктор с двумя параметрами – начальным балансом счета и допустимой
величиной овердрафта; конструктор должен вызывать конструктор родительского
класса (Account)
c. конструктор с одним параметром - начальным балансом счета; величину овердрафта
считать равной 0; конструктор должен вызывать ранее определенный конструктор с
двумя параметрами
d. переопределенный метод withdraw, учитывающий особенности счета (овердрафт)
6. Протестируйте работу созданных классов на следующих примерах:
a. клиент с накопительным счетом
b. клиент с расчетным счетом
c. два клиента с общим расчетным счетом
Задание 3
Вы модифицируете систему банка, позволив клиенту иметь несколько (до 5) счетов различного вида

1. Модифицируйте класс Customer:


a. замените поле account на массив объектов класса Account
b. добавьте поле numberOfAccounts (количество счетов)
c. проинициализируйте вышеуказанные поля в конструкторе
d. замените метод setAccount на метод addAccount (добавление счета). При превышении
максимального количества счетов добавление производиться не должно
e. добавьте метод getNumOfAccoounts, возвращающий количество счетов клиента
f. измените метод getAccount, добавив ему параметр «порядковый номер счета»,
который должен возвращать счет по его порядковому номеру
2. Протестируйте модифицированный класс:
a. создайте ряд клиентов с различными типами счетов, выполните ряд операций над
счетами
b. выведите информацию о всех счетах всех клиентов банка, включая имя владельца
счета, тип счета, баланс счета