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






