Задание на лабораторную работу
Для каждого класса необходимо предоставить его графическое представление в диаграмме классов UML. Графическое представление добавить в протокол лабораторной работы и принести на защиту лабораторной работы.
Класс DynamicIntArray
Необходимо создать класс DynamicIntArray
, который реализует функционал динамического массива целых чисел.
При реализации динамического массива учитывайте следующее:
при реализации класса вам необходимо указать область видимости для полей и методов. Подумайте о том, какие методы необходимо отнести к "интерфейсу", а какие к реализации;
размер динамического массива для внешнего пользователя не имеет значения и теоретически неограничен;
внешний пользователь не должен знать и догадываться, что динамический массив "внутри" реализован с помощью обычного статического массива;
вы должны предусмотреть различные проверки на некорректность индексов, которые мог ввести пользователь;
вы должны написать "реализацию" класса таким образом, чтобы можно моделировать динамическое поведение массива с помощью обычного статического;
продумайте, какие аргументы методы должны принимать и какие значения возвращать.
Перейдите во вкладку "Подсказка", чтобы получить подсказку, которая поможет вам в реализации класса или попробуйте реализовать класс без подсказки.
ВАЖНО! Динамический массив необходимо реализовать с помощью статического целочисленного массива!
Для внешнего пользователя класса поведение класса выглядит следующим образом:
пользователь может создать новый динамический массив с конструктором без параметров или с указанием начальных значений динамического массива;
пользователь может вставить элемент в определенный индекс динамического массива (остальные элементы динамического массива сдвигаются вправо) с помощью метода
add()
. Если методadd()
вызывается без указания индекса, элемент добавляется в конец динамического массива;пользователь может перезаписать значение i-го элемента динамического массива с помощью метода
set()
;пользователь может удалить элемент динамического массива по индексу с помощью метода
removeAt()
. Если методremoveAt()
вызывается без указания индекса, то удаляется последний элемент в динамическом массиве.пользователь может удалить первое вхождение значения в динамическом массиве с помощью метода
remove()
.пользователь может получить индекс первого вхождения элемента в динамическом массиве с помощью метода
indexOf()
. Подумайте о том, как сигнализировать пользователю о том, что искомый элемент в динамическом массиве не найден;пользователь может проверить, есть ли такой элемент в массиве с помощью метода
contains()
;пользователь может получить размер динамического массива с помощью метода
size()
;пользователь может проверить, пустой ли массив с помощью метода
isEmpty()
;пользователь может очистить массив полностью с помощью метода
clear()
.
Last updated
Was this helpful?