第4章 木曜日: クラス定義 - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki
メタプログラミングruby読書会::第4章 木曜日: クラス定義
構成
- 4.1 クラス定義のわかりやすい説明
- 4.1.1 クラス定義の中身
- 4.1.2 カレントクラス
- 4.1.3 カレントクラスのまとめ
- 4.1.4 クラスインスタンス変数
- 4.1.5 Bookwormの作業再び
- 4.2 クイズ:クラスのタブー
- 4.2.1 クイズの答え
- 4.3 特異メソッド
- 4.3.1 特異メソッドの導入
- 4.3.2 クラスメソッドの真実
- 4.3.3 クラスマクロ
- 4.4 特異クラス
- 4.4.1 特異メソッドの謎
- 4.4.2 特異クラスの出現
- 4.4.3 メソッド探索再び
- 4.5 クイズ:モジュールの不具合
- 4.5.1 クイズの答え
- 4.6 エイリアス
- 4.6.1 メソッドエイリアス
- 4.6.2 アラウンドエイリアス
- 4.6.3 Amazonの問題の解決
- 4.7 クイズ:壊れた計算
- 4.7.1 クイズの答え
- 4.7.2 一日の終わり
疑問・質問・ポイント
- 4.1 クラス定義のわかりやすい説明
- p.139 最後の「お知らせ」のところが。モジュールでのお知らせを繰り返さないよ、という意味? (suchi)
- p.145 コラム ・@@vが定義されているときのカレントクラスはObject ・クラス変数はサブクラスからアクセス可・ゆえにMyClassからObjectの@@vにアクセスできる、というのは理解できたのですが、「クラス変数はクラスではなく、クラス階層に属している」の意味がわかりませんでした(suchi)
- suchiさんと同じくです。1.@@vはObjectクラスの変数という意味で合っているか 2.この場合のクラス階層とは具体的に何を表しているのか(sea_mountain)
- p.147 真ん中あたり「class_eval()...を使って、プライベートな @time_class 変数にこのクラスを割り当てる」のclass_evalを使った場合はどう書く?(mackato)
- 4.2 クイズ:クラスのタブー
- 4.3 特異メソッド
- p.150 Object.singleton_methods #=> 特異メソッドを配列で返す
- p.153 class_definisions/attr.rbのコードで、def my_attribute=(value)の部分で、my_attributeに=が付いている理由(これで起こる処理?)。 基本的な文法の部分だと思います。見覚えがある気がするのですが、うまく見つからなかったのでお聞きしたいです。(sea_mountain)
- p.158 「特異クラスとinstance_eval()」 「instance_evalを呼ぶことでカレントクラスをレシーバの特異クラスに変更する」の意味がわからなかった(suchi)
- 4.4 特異クラス
- 4.5 クイズ:モジュールの不具合
- 4.6 エイリアス
- aliasとModule#alias_method() の使い分けは必要? (suchi)
- 4.7 クイズ:壊れた計算