Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книга1(полный конспект).docx
Скачиваний:
55
Добавлен:
23.12.2018
Размер:
49.16 Mб
Скачать

6.14. Понятие об объективно-ориентированных моделях данных

Объективно-ориентированные модели создаются на основе объективно-ориентированного программирования на языках высокого уровня.

В состав модели входят следующие понятия: тип, класс, объект.

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

Примерами типов являются следующие.

Тип char языка Си. Его существенным признаком является размер 8 бит. Объект, определенный этим типом, принимает значения от – 128 до 127.

Типы, определяемые пользователем с помощью ключевых слов typedef, enum. Типы, определяемые структурой. Структуры позволяют определять новые типы путем логического группирования переменных различных типов. Например, структура structure piket {NOM_PIK, GOR_KR, VERT_KR, KOORD, VYSOTA, NASV_ST} определяет тип piket, характеризуемый известными свойствами, соответствующими атрибутам пикета в реляционной модели базы данных.

Класс – это определяемый пользователем тип, в котором нарду с элементами данных определены функции, задающие поведение типа. Наиболее четко определено понятие класса в языке СИ++.

Класс напоминает определение структуры за следующим исключением:

- в классе содержатся следующие спецификации доступа, задаваемые ключевыми словами public, protected, private;

- вместо ключевого слова struct применяются class или union;

- наряду с элементами данных применяются функции;

- применяются специальные функции: конструкторы и деструкторы.

Управление доступом осуществляется следующим образом. При типе private элементы данных и функции – элементы доступны для функций – элементов этого класса. При public доступ разрешен для функций – элементов и других функций программы, в которой имеется представитель класса. При protected – доступ разрешен для функций – элементов данного класса и классов, производных от него.

Конструктор является функцией – элементом с тем же именем, что и ее класс. Он необходим для создания элемента класса.

Деструктор – функция – элемент, имеющая то же имя, что и ее класс. Он по необходимости уничтожает элемент класса, созданный конструктором.

Важной чертой объективно-ориентированного программирования является наследование. При этом новый класс может получать атрибуты и поведение от уже существующего класса.

Новый класс называют производным классом. Класс, элементы которого наследуются, называется базовым классом.

Синтаксис наследовании имеет следующий вид.

Class base

{ … }

Class derived: ключ доступа base

{ … }

Ключ доступа не является обязательным и может быть private, protected или public. По умолчанию для классов принимается ключ доступа – private, для структур – public.

Покажем наследование на примере тахеометрической съемки. Пусть имеется класс plan, под которым понимается составление плана. Это действие возможно при вычисленных значениях прямоугольных или полярных координат пикетов и их высот. Функция xyhpiket ( ) входит составным элементом в класс piket. Тогда класс plan должен наследовать класс piket с тем чтобы получить координаты и высоты пикетов для построения плана.

Эта конструкция на языке Си++ будет выглядеть так:

Class piket

{ …

Void xypiket ( );

… }

Class plan: public piket

{ }

Отметим теперь понятие объекта, под которым понимается экземпляр типа данных. В рассматриваемом примере объекту в классе piket будет соответствовать запись с конкретным значением атрибутов. Следующим важным элементом кроме типа класса и объекта в объектно-ориентированных моделях является сообщение.

Сообщение состоит из имени приемника сообщения и имени операции, которая осуществляется в приемнике, а также атрибутов данной операции. Например, в функции main

Void main (void) { …

Plan xyhpiket (<аргумент>)

… }

Таким сообщением будет конструкция

Plan. xyhpiket (аргументы).

Роль приемника играет класс plan, операция с аргументами определена именем plan. xyhpiket (аргументы). В состав аргументов входят величины, необходимые для вычислений координат и высот пикетов.