Объектно-ориентированное программирование
Уроки Открыть IDE
На главную
ООП • Урок 5

Массивы объектов

Как хранить много собак в одной упряжке

Напоминание: что такое массив?

Массив — это набор ячеек памяти, способных хранить много значений одного типа.

Барсик Мурка Рекс Тузик Дружок Мурзик

В этом примере массив names хранит 6 строк. Каждая ячейка массива — это переменная, которая содержит строку.

Каждая ячейка — переменная

Если массив работает как набор переменных, то каждая ячейка массива по сути является переменной. А значит, после names[i] можно ставить точку и обращаться к методам:

Барсик -> 6 Мурка -> 5 Рекс -> 4 Тузик -> 5 Дружок -> 6 Мурзик -> 6

names[i] — это строка. А у строк есть метод length(). Всё логично!

Массив объектов

С объектами это работает точно так же, как с переменными. Можно создать массив, где каждая ячейка — это объект какого-либо класса.

Если массив dogs работает как набор объектов, то каждая ячейка (dogs[0], dogs[1], dogs[2]) по сути является объектом. А значит, после таких объектов можно ставить точку и обращаться к их свойствам и методам.

Вызов методов у объектов в массиве

После квадратных скобок с номером ячейки можно обращаться не только к свойствам, но и к методам:

Семь собак — семь команд. Каждая собака гавкнет по команде.

Упаковываем повторяющиеся действия в цикл

Когда собак много, писать 7 одинаковых строк утомительно. На помощь приходит цикл:

Все семь собак гавкнут по одному разу. А если собак станет 100 — достаточно поменять число в условии цикла.

Динамический массив объектов

Иногда мы не знаем заранее, сколько объектов понадобится. На помощь приходит dyn_array (динамический массив).

Шарик 3 Бобик 5

Динамический массив сам следит за своим размером. Можно добавлять новые объекты в любом количестве — массив подстроится.

Итог

  • Массив может хранить объекты любого класса.
  • Каждая ячейка массива — это полноценный объект.
  • К свойствам и методам объекта в массиве обращаемся через массив[индекс].свойство.
  • Повторяющиеся действия с массивом удобно упаковывать в цикл.
  • Динамический массив (dyn_array) позволяет добавлять объекты во время выполнения программы.