Hatena::Grouphappyabc

オブジェクトシステム

オブジェクトシステム

概要

クラスの宣言と使用方法です。

Flashのライブラリを利用するために用いることを想定しています。

(class name (super) (attr1 attr2 ..) method1 method2 ..)[文]

nameというクラスを宣言します。

superは親クラスです。複数の親クラスを指定したり、親クラスを省略するとObjectを指定したのと同じ意味になります。

attr_nでクラスの持つ属性を指定します。属性は、slot-ref/slot-set!で参照・設定できます。

method_nは以下のいずれかの形式をしています。

(method f (self arg1 arg2 ..) body)
インスタンスメソッドを宣言します。第1引数はインスタンスを指す変数です。
(static-method f (arg1 arg2 ..) body)
クラスメソッドを宣言します。
(class Point () 
  (x y)
  (method distance (self)
     (+ (* x x) (* y y))))

(new name)[式]

nameクラスのインスタンスを生成します。

(slot-ref obj name)[式]

objの指すオブジェクトのname属性を参照します。

(slo-set! obj name val)[式]

objの指すオブジェクトのname属性に、valを評価した結果を設定します。

(. obj (f arg1 arg2 ..))[式]

objの指すオブジェクトのメソッドfを呼びます。

(. textfield (addText "foo bar"))
(. Math (cos 30))