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

Объективно - ориентированные модели создаются на основе объективно - ориентированного программирования на языках высокого уровня (С++, Турбопаскаль и др.).

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

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

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

Тип 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 (аргументы). В состав аргументов входят величины, необходимые для вычислений координат и высот пикетов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: