Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uch_pos.docx
Скачиваний:
213
Добавлен:
20.03.2016
Размер:
423.96 Кб
Скачать

4.1.2. Описания классов

Описания класса в ODL в их простейшей форме состоят из следующих элементов:

  1. Ключевого слова interface.

  2. Имени интерфейса (т.е. класса).

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

Простая форма описания интерфейса:

interface <имя>{

<список свойств>}

4.1.3. Атрибуты в odl

Свойства объектов называются атрибутами. Эти свойства описывают определенные аспекты объекта, связывая с ним значение некоторого простого типа. Например, все объекты студент могут иметь атрибут имя, типом которого является строка, а значением – имя данного человека. Эти объекты могут иметь также атрибут дата_рождения, являющийся тройкой целых чисел (т.е. структурой записи), выражающей год, месяц и день рождения данного студента.

Пример 4.1. Ниже приведено ODL-описание класса изделий ателье. Здесь оно относительно простое; позже мы расширим его.

  1. interface Изделие {

  2. attribute string назв_изделия;

  3. attribute integer размер;

  4. attribute enum Материал{ткань, мех, кожа}

тип_материала;};

Здесь и далее предполагается, что в именах допускаются кириллические символы. Данный пример чисто иллюстративный, для упрощения указывается только один размер и допускается использование только трех типов материалов.

Строка 1 описывает Изделие как класс. Ключевое слово interface используется в ODL для выражения класса. За строкой 1 следуют описания трех атрибутов, которые имеют объекты класса Изделие. Первый из них на строке 2 называется назв_изделия, его типом является string – строка символов. Предполагается, что значением атрибута назв_изделия в любом объекте Изделие будет название изделия (пальто, платье и т.д). Следующий атрибут (размер), описанный в строке 3, имеет тип целых чисел, и представляет размер изделия по установленной шкале. На строке 4 описан атрибут тип_материала, показывающий, из чего изготовлено (или изготавливается) изделие. Его тип – перечень с именем Материал. Значения атрибута перечня выбираются из списка доступных литералов, в данном примере – ткань, мех, кожа.

Определенный таким образом объект Изделие можно считать записью, или кортежем, состоящим из четырех компонентов, по одному для каждого атрибута. Например:

("Пальто", 50, кожа) является объектом Изделие.

Пример 4.2. В примере 4.1 атрибуты имеют атомарные типы. Могут быть атрибуты, типами которых являются структуры, множества или множества структур. Ниже приводится пример с неатомарным типом.

Определим класс Мастер:

  1. Interface Мастер {

  2. attribute string фамилия;

  3. attribute string имя;

  4. attribute string отчество;

  5. attribute Struct Адреса

{string город, integer индекс, string улица,

string дом, integer квартира} адрес;

} ;

В строках 1,2,3 определяются атрибуты фамилия, имя, отчество мастера, являющиеся строками. Строка 5 определяет атрибут адрес, имеющий тип структуры записи. Имя этой структуры Адреса, данный тип состоит из пяти полей: город, индекс, улица, дом (номер дома может содержать дроби и буквы, поэтому выбран тип string), квартира. В общем случае в ODL можно определить типы структуры записи с помощью ключевого слова Struct и фигурных скобок, выделяющих список имен полей и их типы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]