Задание на лабораторную работу
Задание 1. Модификация классов
Добавьте модификаторы доступа к членам классов, разработанных в лабораторной работе 2 (классы TimeSpan, BankAccount и Student).
Подумайте над тем, какие члены класса сделать приватными, а какие публичными
Задание 2. Создание UML-диаграмм
Для модифицированных классов из второй лабораторной работы нарисуйте диаграммы классов UML.
Задание 3. Класс IntStack
Необходимо создать класс IntStack, который реализует функционал стека целых чисел с помощью статического массива.
Нарисуйте класс в диаграмме классов UML
При реализации стека учитывайте следующее:
при реализации класса вам необходимо указать область видимости для полей и методов. Подумайте о том, какие методы необходимо отнести к "интерфейсу", а какие к реализации;
размер стека для внешнего пользователя не имеет значения и теоретически неограничен;
внешний пользователь не должен знать и догадываться, что стек "внутри" реализован с помощью обычного статического массива;
вы должны написать "реализацию" класса таким образом, чтобы можно моделировать динамическое поведение стека с помощью обычного статического массива;
продумайте, какие аргументы методы должны принимать и какие значения возвращать.
Перейдите во вкладку "Подсказка", чтобы получить подсказку, которая поможет вам в реализации класса или попробуйте реализовать класс без подсказки.
При создании объекта стека инициализируйте внутренний статический массив с каким-то изначальным размером;
При вставке элементов проверяйте, не выходите ли вы за пределы внутреннего статического массива;
Если внутренний массив переполнен, создавайте новый массив большего размера: создавайте новый массив, копируйте значения из старого массива в новый, заменяйте новый массив на старый. Помните, что массивы в Java - объекты и что поле - просто указатель на массив и что указатель может указывать на другой массив;
При уменьшении размера стека реализуйте уменьшение внутреннего статического массива. Подумайте, как это лучше сделать, чтобы не уменьшать внутренний массив при каждом удалении элемента из стека.
ВАЖНО! Стек необходимо реализовать с помощью статического целочисленного массива!
НЕ ИСПОЛЬЗУЙТЕ КОЛЛЕКЦИИ И ПОТОКИ ДАННЫХ, ТОЛЬКО МАССИВЫ
Для внешнего пользователя класса, поведение класса выглядит следующим образом:
пользователь может создать новый стек с конструктором без параметров;
пользователю доступна команда
pop()для извлечения элемента из стека. Методpop()возвращает извлеченный элемент. При попытке извлечь из пустого стека, метод возвращает0или выбрасывает исключение (реализуйте выброс исключения, если вы знаете, как это делать и что такое исключение);пользователю доступна команда
push(), которая добавляет элемент в стек;пользователю доступна команда
peek()для просмотра элемента на вершине стека без его исключения.пользователь может получить значение количества элементов в стеке с помощью метода
size();пользователь может проверить, пустой ли стек с помощью метода
isEmpty();пользователь может очистить стек полностью с помощью метода
clear().
Задание 4. Создание класса по UML-диаграмме
Создайте Java-классы исходя из диаграммы, представленной ниже. Код методов реализовывать не нужно, только заголовки и общую структуру классов.

Last updated
Was this helpful?