「公案」とは禅で用いられ、なんたら かんたら。 この公案を考えることでオブジェクト指向プログラミングの悟りをなんたらかんたら。
- Q: 変数とは何か?
- A: 箱である
- B: ラベルである
- C: ラベルを入れた箱である
i = 1の i を答えよi = i + 1の i を答えよ
- Q:
nilとは何か。 - A: 何もない
- B: 「何もない」がある
- C: なにものでもない
- D: error (maker or sentinel)
1+2と3は同じか?1==1とtrueは同じか?objとobj.dupは同じか?"abc"と"abc"は同じか?
1 + 2を答えよ"a" + "b"を答えよ1 + "a"を答えよ"a" + 1を答えよ
- Q: ポインタとは何か
- A: メモリ上の位置である
- B: アドレスを入れた変数である
- C: 参照である
- D: オブジェクトである
- Q: オブジェクトとは何か?
- A: データとそれに対する手続きをまとめたもの
- B: 「もの」
- C: 「あれ以外の何か」
- Q:
NULLはオブジェクトか? - A: 否。
- Q:
nilはオブジェクトか? - A: 是。
- Q: オブジェクト指向とは何か?
- カプセル化
- 継承
- ポリモーフィズム
foo.barと書けること
- 有理数というものは(概念的には)ObjectSpace内に常に存在している [ruby-dev:33832]
true,false,nil,Symbol,Fixnumは原初から存在している
- カプセル化されていないものはオブジェクトか?
-
何も継承していないものはオブジェクトか?
-
人は動物を継承しているのか? -
Q: 「継承」は何を継承するのか?
-
A: そのものの分類
-
B: 仕様である
-
C: 実装である
- Q: ポリモーフィズムとは何か?
- A: レシーバによって、同じ名のメソッドの挙動が変わること
- B: 異なる種類のオブジェクトなのに、同じメッセージを送ることができ、同じように振る舞うこと
- C: 異なるオブジェクトを同じように扱えること
- Q: 型とは何か?
- A: 変数の型のこと
- B: オブジェクトのクラスのこと
- C: インターフェイスのこと
- D: あるオブジェクトの持つ一連の振る舞い
- Q: クラスとは何か?
- A: オブジェクトの分類である
- B: オブジェクトの型である
- C: オブジェクトの鋳型である
- D: イデア
- E: Factory
io.print objとobj.display ioのどちらが「よい」かary.join(sep)とsep.join(ary)のどちらが「よい」か