Книга: Основы объектно-ориентированного программирования
Массивы как объекты
Массивы как объекты
Понятие массив обычно является частью определения языка программирования. В объектной технологии нет необходимости нагружать нотацию специальными заранее определенными конструкциями: массив - контейнерный объект, экземпляр класса, который можно назвать ARRAY.
ARRAY хороший пример родового класса. Рассмотрим первый набросок этого класса:10.3)
indexing
description: "Последовательность значений одного типа или согласуемых типов,%
%доступных через целые индексы в заданном диапазоне"
class ARRAY [G] creation
make
feature
make (minindex, maxindex: INTEGER) is
-- Размещение массива с границами minindex и maxindex
-- (пустой, если minindex > maxindex)
do ... end
lower, upper, count: INTEGER
-- Минимальный и максимальный допустимый индекс; размер массива.
put (v: G; i: INTEGER) is
-- Присвоить v элементу массива с индексом i
do ... end
infix "@", item (i: INTEGER): G is
-- Элемент с индексом i
do ... end
end -- класса ARRAY
Для создания массива a с границами m и n, тип объявления которого ARRAY [T] с заданным типом T, нужно выполнить инструкцию создания
create a.make (m, n)
Для задания значений элементов массива используется процедура put: вызов a.put(x, i) присваивает значение x i-ому элементу. Для доступа к элементам можно использовать функцию item (синоним инфиксной операции @, поясняемой позже), например:
x := a.item (i)
Вот схема того, как этот класс может быть использован клиентом:
pa: ARRAY [POINT]; p1: POINT; i, j: INTEGER
...
create pa.make (-32, 101) -- Разместить массив с указанными границами.
pa.put (p1, i) -- Присвоить значение p1 элементу с индексом i.
...
p1 := pa.item (j) -- Присвоить сущности p1 значение элемента с индексом j.
В обычной нотации (скажем, в Pascal) нужно писать:
pa [i] := p1 вместо pa.put (p1, i)
p1 := pa [i] вместо p1 := pa.item (i)
- Глава 13. Тонкости хранения данных: массивы и коллекции.
- 4. Структуры данных: объекты и массивы
- Массивы
- У10.2 Двумерные массивы
- 6.2.1. Объекты как ассоциативные массивы
- ЧАСТЬ IV. База данных и ее объекты.
- Физические объекты
- Динамические массивы
- 9.1 Массивы RAID
- Объекты без прототипов
- Объекты базы данных
- Форматирующие объекты XSL-FO