Пример 11.39. Класс car
(defclass CAR (is-a USER)
(role concrete)
(slot price (default 75000))
(slot model (default Corniche)))
Рис. 11.17. Создание и инициализация экземпляра класса CAR
Включите просмотр поступающих сообщений с помощью команды (watch messages) и просмотр активизированных обработчиков командой (watch message-handlers) и создайте после этого какой-нибудь объект класса car. Вы должны увидеть результат, идентичный приведенному на рис. 11.17. Как видно из рисунка, сразу после создания объекту Rools-Royce класса car были посланы сообщения create и init.
Удаление объекта
При удалении объект класса, унаследованного от системного класса user, получает сообщение delete, которое обрабатывается предопределенным системным обработчиком.
Определение 11.11. Синтаксис системного обработчика delete
(defmessage-handler USER delete primary ())
Этот обработчик отвечает за удаление объекта из системы. Пользователь должен самостоятельно послать сообщение delete объекту, который он хочет удалить. Обработчик возвращает значение true, если объект успешно удален, в противном случае — false. Пользователь может определить свой обработчик сообщения delete. Но определенный пользователем обработчик должен вызывать системный обработчик. Пример использования сообщения delete приведен на рис. 11.18.
Рис. 11.18.Удаление экземпляра класса CAR
Отображение объекта
Для отображения содержимого слотов объекта предназначено сообщение print, которое также имеет предопределенный системный обработчик.
Дата добавления: 2021-12-14; просмотров: 269;