Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fedorenko_SII_Laba_1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
236.54 Кб
Скачать

Объекты

Объект CLIPS состоит из двух основных частей — свойств объекта и его поведения. Класс представляет собой своеобразный шаблон, определяющий общие свойства и поведение объектов — экземпляров этого класса. Объекты могут принадлежать классам, определенным пользователем, или некоторым системным классам (например, классам, реализующим представление объ­ектов в виде примитивных данных). Ниже приведены несколько примеров объектов и названия их классов:

Объекты (вид, отображаемый на экран) Классы

Rolls-Royce SYMBOL

"Rolls-Royce" STRING

8.0 FLOAT

8 INTEGER

(8.0 Rolls-Royce 8 [Rolls-Royce]) MULTIFIELD

<Pointer- OOCF61AB> EXTERNAL-ADDRESS

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

Объекты примитивных типов неявно создаются и удаляются системой CLIPS в местах, где это необходимо. По ссылке на такой объект можно по­лучить хранящееся в нем значение соответствующего типа. Объекты прими­тивных типов не имеют слотов и, как правило, не имеют имен. Классы, оп­ределяющие эти объекты, являются предопределенными классами CLIPS. Функциональность предопределенных классов, определяющих объекты примитивных типов, подобна функциональности классов, определенных пользователем, за исключением того, что к таким классам нельзя присоеди­нить обработчики сообщений. Это делает не очень удобным использование таких классов в объектно-ориентированном программировании.

Для ссылки на объект класса, определенного пользователем, необходимо использовать имя или адрес объекта. Такие объекты явно создаются или удаляются с помощью сообщений или специальных системных функций. Свойства объекта класса, определенного пользователем, определяются на­бором слотов, заданных при определении класса. Слот объекта имеет имя и может содержать простое или составное значение. Например, объект Rolls-Royce является объектом созданного пользователем класса car. Один из сло­тов такого объекта может, например, содержать цену автомобиля со значе­нием 75 000. Поведение объектов определяется наличием тех или иных об­работчиков сообщений, присоединенных к соответствующему классу. Обра­ботчики сообщений и способы работы с объектами подробно описаны в гл. 11. Все объекты одного класса имеют одинаковые наборы слотов, но могут содержать в этих слотах различные значения. Однако, если два объек­та имеют одинаковые наборы слотов, это еще не означает, что они принадлежат одному классу, т. к. два абсолютно разных класса, теоретически, мо­гут иметь одинаковые наборы слотов.

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

Конструктор definstances позволяет создавать набор объектов, добавляю­щихся в базу знаний CLIPS при каждой очистке системы. При выполнении команды reset среда CLIPS очищается, а затем в список объектов добавля­ются все объекты, заданные конструкторами def instances. CLIPS содержит один предопределенный системный конструктор definstances, который вы­зывает добавление в систему объекта initial-object.

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