In object-oriented programming a method is a function associated with a particular class or object. In most forms of object oriented implementations methods can be static, associated with the class itself; or instance, associated with an instance of a class.

Show how to call a static or class method, and an instance method of a class.

(defclass my-class ()
  ((x
    :accessor get-x  ;; getter function
    :initarg :x      ;; arg name 
    :initform 0)))   ;; initial value
 
;; declaring a public class method
(defmethod square-x ((class-instance my-class))
  (* (get-x class-instance) (get-x class-instance)))
 
;; create an instance of my-class
(defvar *instance*
  (make-instance 'my-class :x 10))
 
(format t "Value of x: ~a~%" (get-x *instance*))
 
(format t "Value of x^2: ~a~%" (square-x *instance*))
 