initialize

Bei initialize handelt es sich um eine generische Funktion. Sie wird innerhalb der Aufrufe von make-instance oder new verwendet, um neu erzeugte Instanzen zu initialisieren. Das bedeutet, wenn man make-instance für eine neue Klasse verwenden will, dann muss vorher mit defmethod eine passende Methode mit Namen initialize definiert werden.

Der Aufruf von initialize muss den Wert zurückgeben, der von make-instance erwartet wird. Normalerweise handelt es sich dabei um die neu erzeugte Instanz.

> (defclass thing ())
> (defmethod initialize ((something thing) v) t (progn (assignq something value v) (freeze v))
> (defmethod get-value ((something thing)) t (slot-value something (quote value)))
> (setq something (new thing "Hallo"))
> (get-value something)
"Hallo"