ゴミ箱.net

汚物は消毒

結局「Java プログラマであるかを見分ける 10 の質問」の正解は何なんだよ

俺の答え。

1. インスタンスが同一かどうかを見るのと、インスタンスの示す値が同一かどうかを見るのと 例として文字列の比較ではequalsを使う
2. +によって結合されるたびに新規のStringのインスタンスが生成されるオーバヘッドがあるため
3. 同一の実装で異なる型に対応できるようにして実装の重複をなくすと同時に、型に制約を設けることで安全なコーディングをすることができる
4. プログラムからそのオブジェクトへの参照がなくなり、オブジェクトが今後使われることがなくなったとき
5. RuntimeExceptionを継承せずcatchを明示的にする必要があるのと、RuntimeExceptionを継承し明示的なcatchが不要なの
6. 内部の設計を変えてもクラスを呼び出す側に対する影響がない、またgetter,setterを呼び出すときに通知などの処理を走らせることもできる
7. nullが入っている変数を参照し、そのメソッドやフィールドにアクセスしようとしたとき
8. 引数の型・個数が異なる同一名称のメソッドを宣言するのと、既定クラスで定義されたメソッドと同一の名称および引数の型・個数のメソッドを派生クラスで定義するの
9. インスタンスを生成するときに実行される特別なメソッドで、フィールドの初期化などを行う
10. クラスのメソッドだけ先に定義しておくことで、クラスを呼び出す側とクラス内部の実装を独立して行えるようにする

10についてはほかにもいろいろな使い道があるな。
多重継承ができない代わりとか、アノテーションのない時代にクラスに印をつけるためとか。

リンク先へのトラックバックをざっと見てみる。
ちょっと問題、特に10の問い方が曖昧なせいで答えがぶれてる部分があるけど、しっくりこないあの人並みの根本的に分かってない奴はいなさそうだ。残念w
ぜひともあの人に答えて欲しいところだwww

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する