2007年9月26日水曜日

self と super

selfとsuperを考えると改めてSqueakというのは奥が深いと思います.

普段なんとなく使っていますが,意外に難しい.
とりあえずSqueakのself と superをしっかり理解することに.

superとselfは同じオブジェクト.
なのでsuperもレシーバーオブジェクトを参照しているのですが,selfとの違いはmethod探索ときに「実行中のメソッドの属するクラスのスーパークラスから始める」ようです.

Squeak by Exampleとか自由自在Squeakに載っています.(こういうことを書くのはもしかして著作権違反?)

なんとなくsuperをレシーバーオブジェクトのsuperclassを示すものと勘違いしてしまうので注意しないと・・・.(はじめてのときはそう思っていた)

superの「実行中のメソッドの属するクラスのスーパークラスから始める」という仕様はsuperの使い道がmethodの再利用だからなのでしょうか?



他のOOLはどうだったか調べてみよう.


どうでもいいですが,TwoPTextEditerのLinkを直しました.
TwoPTextEditer0.01.st

0 件のコメント: