Пример 16.5. Работа с командой describe-class
(clear)
(defclass CHILD (is-a USER)
(role abstract)
(multislot parents (cardinality 2 2))
(slot age (type INTEGER)
(range 0 18))
(slot sex (access read-only)
(type SYMBOL)
(allowed-symbols male female)
(storage shared))
)
(defclass BOY (is-a CHILD)
(slot sex (source composite)
(default male))
)
(defmessage-handler BOY play ()
(printout t "The boy is now playing..." crlf) )
(describe-class CHILD)
Результат выполнения приведенных выше команд представлен на рис. 16.4.
В табл. 16.11 содержится список полей и их возможные значения, использующиеся для описания свойств и граней слотов заданного класса.
Таблица 16.11. Поля, использующиеся для описания свойств и граней слотов заданного класса
Поле | Значение | Описание |
FLD | SGL/MLT | Тип слота (простой или составной) |
DEF | STC/DYN/NIL | Значение по умолчанию (статическое, динамическое или отсутствует) |
PRP | INH/NIL | Распространение по наследованию (наследуется или нет) |
ACC | RW/R/INT | Разрешенный доступ (чтение-запись, чтение, инициализация) |
STO | LCL/SHR | Тип хранения (в экземпляре объекта или в классе) |
MCH | RCT/NIL | Активность при сопоставлении образцов (активный или нет) |
SRC | Источник свойств унаследованного слота (составной или обычный) | |
VIS | PUB/PRV | Видимость (открытый или закрытый) |
CRT | R/W/RW/NIL | Автоматическое создание акцессоров (чтение, запись, чтение-запись или отсутствуют) |
OVRD-MSG | <имя сообщения> | Имя сообщения, посылаемого для переопределения слота функцией make-instance и др. |
SOURCE(S) | <класс>+ | Класс-источник слота (если слот унаследован от нескольких классов — список классов) |
Рис. 16.4. Результат выполнения команд из примера 16.5
Помимо описания граней слотов команда describe-dass отображает также список всех ограничений типов, используемых для каждого слота. Список сокращений, применяемых для описания ограничений, приведен в табл. 16.12. В случае если определенный тип отмечен знаком +, то слот может содержать любые значения соответствующего типа. Если тип отмечен знаком #, это означает, что слот может принимать только некоторые заданные значения этого типа.
Таблица 16.12. Используемые сокращения
Аббревиатура | Описание |
SYM | SYMBOL |
STR | Строка (string) |
INN | Имя объекта (Instance Name) |
INA | Адрес объекта (Instance Address) |
ЕХА | Внешний адрес (External Address) |
FTA | Адрес факта(Fact Address) |
INT | Целое (INTEGER) |
FLT | Вещественное (float) |
RNG | Диапазон |
CRD | Мощность |
Команда browse-classes предназначена для отображения в диалоговом окне системы иерархии наследования классов, определенных в данный момент в системе.
Дата добавления: 2021-12-14; просмотров: 243;