Задание на лабораторную работу

Для каждого класса необходимо предоставить его графическое представление в диаграмме классов UML. Графическое представление добавить в протокол лабораторной работы и принести на защиту лабораторной работы.

Класс DynamicIntArray

Необходимо создать класс DynamicIntArray, который реализует функционал динамического массива целых чисел.

При реализации динамического массива учитывайте следующее:

  • при реализации класса вам необходимо указать область видимости для полей и методов. Подумайте о том, какие методы необходимо отнести к "интерфейсу", а какие к реализации;

  • размер динамического массива для внешнего пользователя не имеет значения и теоретически неограничен;

  • внешний пользователь не должен знать и догадываться, что динамический массив "внутри" реализован с помощью обычного статического массива;

  • вы должны предусмотреть различные проверки на некорректность индексов, которые мог ввести пользователь;

  • вы должны написать "реализацию" класса таким образом, чтобы можно моделировать динамическое поведение массива с помощью обычного статического;

  • продумайте, какие аргументы методы должны принимать и какие значения возвращать.

Перейдите во вкладку "Подсказка", чтобы получить подсказку, которая поможет вам в реализации класса или попробуйте реализовать класс без подсказки.

ВАЖНО! Динамический массив необходимо реализовать с помощью статического целочисленного массива!

Для внешнего пользователя класса поведение класса выглядит следующим образом:

  • пользователь может создать новый динамический массив с конструктором без параметров или с указанием начальных значений динамического массива;

  • пользователь может вставить элемент в определенный индекс динамического массива (остальные элементы динамического массива сдвигаются вправо) с помощью метода add(). Если метод add() вызывается без указания индекса, элемент добавляется в конец динамического массива;

  • пользователь может перезаписать значение i-го элемента динамического массива с помощью метода set();

  • пользователь может удалить элемент динамического массива по индексу с помощью метода removeAt(). Если метод removeAt() вызывается без указания индекса, то удаляется последний элемент в динамическом массиве.

  • пользователь может удалить первое вхождение значения в динамическом массиве с помощью метода remove().

  • пользователь может получить индекс первого вхождения элемента в динамическом массиве с помощью метода indexOf(). Подумайте о том, как сигнализировать пользователю о том, что искомый элемент в динамическом массиве не найден;

  • пользователь может проверить, есть ли такой элемент в массиве с помощью метода contains();

  • пользователь может получить размер динамического массива с помощью метода size();

  • пользователь может проверить, пустой ли массив с помощью метода isEmpty();

  • пользователь может очистить массив полностью с помощью метода clear().

Last updated