Определим класс объектов - точек на плоскости в декартовых координатах.
(defclass cart () ; имя класса и надклассы ((x :initarg :x :reader cart-x) ; дескриптор слота x (y :initarg :y :reader cart-y))) ; дескриптор слота y
Дескриптор слота определяет
x |
Имя слота - символ. |
:x |
Ключ для именованного аргумента инициализации для создания объекта. |
cart-x |
Селектор для извлечения значения, может совпадать с именем слота. |
Класс должен быть определён раньше (выше по тексту), чем методы, в которых он упоминаются. Вышеприведённое определние метода
(defmethod draw ((port capi:output-pane) (shape line)) ...)
работает в CLisp, но не в других реализациях, ибо класс line будет определён позже (ниже по тексту).