Squeakでマターリ語りましょうや
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
100:デフォルトの名無しさん 06/05/05 23:30:33 TelnetMachine open. の do itで作成したオブジェクトにWorkspaceから メッセージを送る方法はありますか? 表示されたobject(ウィンドウ)のハローを表示してインスペクタでselfを みるとオブジェクトIDっぽい数字「a SystemWindow(3652)」が現れるんですが、 この数字を介してメッセージの送信は可能でしょうか。 101:デフォルトの名無しさん 06/05/06 01:13:43 >>98 > ・なぜ「open」という存在を知っていたのか、 知りませんでした。が、クラスメソッドで見つけました。 > ・それがインスタンスでなくてクラスである理由 いろいろと複雑な事情がありますが、簡単にいえば単なる慣習です。 MVC でいうところの M(モデル)の属するクラスのクラスメソッドに V や C を担当する クラスと関連付けをする作業を定義することをよくします。 > ちなみに、Morphにおける「new」というメソッドは > なぜ有効なんでしょう。 #new は Behavior に定義されています。 Morph はクラスですが、自身もインスタンスです。属するクラスは無名ですが、 便宜的に Morph class と呼称します。いわゆるメタクラスというやつです。 メタクラスのスーパークラスパスは、原則としてそのインスタンスである クラスのスーパークラスパスと同じです。したがって、Morph class の スーパークラスをたどると ProtoObject class に行き着きます。 ProtoObject class は ProtoObject と違って、さらにスーパークラスがあります。 それが、Class です。そこからは普通に ClassDescription、Behavior とたどることができます。 | superclass | World findATranscript: nil. superclass := Morph class superclass. [superclass isNil] whileFalse: [ Transcript cr; show: superclass. superclass := superclass superclass] 余談ですが、このスクリプトの全角スペースをタブに置き換えるには、 最初の全角スペースを削除してタブをタイプした後、alt + shift + j としてみてください。 again という機能です。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5386日前に更新/113 KB
担当:undef