Пример 4.12. Объекты и их классы


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

Rolls-Royce SYMBOL

"Rolls-Royce" STRING

8.0 FLOAT

8 INTEGER

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

<Pointer- OOCF61AB> EXTERNAL-ADDRESS

[Rolls-Royce] CAR (класс, определенный пользователем)

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

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

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

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



Дата добавления: 2021-12-14; просмотров: 293;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.