Материал предоставлен https://it.rfei.ru

Упражнения на программирование

4.1. Представьте, что вы создаете приложение, в котором есть набор различных инструментов, с которыми может работать пользователь. Для работы с этими инструментами требуется определенный контекст, который описывает текущее выделение в приложении. Выделение состоит из ссылки на произвольный объект. Нужно создать класс, представляющий контекст редактирования, который могут использовать инструменты. Этот класс должен содержать ссылку на вышеупомянутое выделение. Мы не хотим позволить напрямую манипулировать ссылкой, но требуется иметь методы в классе контекста, которые позволят получить и установить текущее выделение. Напишите такой класс. Проверьте, что с доступом все в порядке.

4.2. В приложении может быть представлен большой набор инструментов, как описано в упражнении 4.1.

Все, что у них есть общего, — это то, что им можно передать контекст редактирования, а также то, что они могут находиться в активном или неактивном состоянии. Напишите интерфейс, который содержит методы для передачи инструменту экземпляра контекста редактирования и методы запроса состояния инструмента.

4.3. Спроектируйте класс для базы данных банка. База данных должна поддерживать следующие операции:

  • депонирование некоторой суммы на счет;
  • снятие некоторой суммы со счета;
  • поиск текущей суммы (т.е. баланса) на счете;
  • передача суммы с одного счета на другой.

Сумма представлена значением типа long во всех транзакциях. Счет — это экземпляр класса Account, который находится в пакете com.megabankcorp.records. Объект базы данных находится в пакете com.megabankcorp.system.

Депонирование, снятие и операции балансировки не должны иметь реализаций, а давать возможность подклассам предоставить реализацию. Операция передачи должна использовать операции депонирования и снятия для реализации передачи. Изменение этой операции в подклассах не должно быть возможным, а использовать эту операцию должно быть разрешено только классам пакета com.megabankcorp.system. Операции депонирования и снятия должны быть доступны отовсюду. Операция балансировки должна быть доступна только из подклассов и классов пакета com.megabankcorp.system.

Объявления и управление доступомУрок 5. Поток команд управления, управление исключениями и диагностические утверждения