'class' is the built-in object class that is used to build other classes. Classes are, essentially, the template for defining object instances.
(setq myclass (send class :new '(var))) ; create MYCLASS with VAR (send myclass :answer :isnew '() ; set up initialization '((setq var nil) self)) (send myclass :answer :set-it '(value) ; create :SET-IT message '((setq var value))) (setq my-obj (send myclass :new)) ; create MY-OBJ of MYCLASS (send my-obj :set-it 5) ; VAR is set to 5
Class definition: The internal definition of the 'class' object instance looks like:
Object is #<Object: #23fe2>, Class is #<Object: #23fe2>
MESSAGES = ((:ANSWER . #<Subr-: #23e48>)
(:ISNEW . #<Subr-: #23e84>)
(:NEW . #<Subr-: #23ea2>))
IVARS = (MESSAGES IVARS CVARS CVALS SUPERCLASS IVARCNT IVARTOTAL)
CVARS = NIL
CVALS = NIL
SUPERCLASS = #<Object: #23fd8>
IVARCNT = 7
IVARTOTAL = 7
#<Object: #23fe2>
The class of 'class' is 'class', itself. The superclass of 'class' is object. Remember that the location information [like #23fe2] varies from system to system, yours will probably look different.
Built-in methods: The built in methods in XLISP include:
Message Structure: The normal XLISP convention for a 'message' is to have a valid symbol preceeded by a colon like :isnew or ':my-message'. However, it is possible to define a 'message' that is a symbol without a colon, but this makes the code less readable.
See the
class
object in the