equalsメソッド 

August 31 [Sun], 2008, 10:35
以下のEmployeeクラスではeaualsメソッドを定義している。
このプログラムに関する記述として正しいものは??

1 public class Employee {
2 private int id;
3 Employee(int id){
4 this.id = id;
5 }
6 public boolean equals(Employee obj){
7 return this.id == obj.id;
8 }
9 }

A.hashCodeメソッドがオーバーライドされていないのでコンパイルエラーとなる
equalsメソッドの値が等しい場合、hashCodeメソッドの値も等しいとするのが規則になっている。
よって本来はオーバーライドすべきだがコンパイルエラーにはならなぃ。→×

B.equalsメソッドのオーバーライドが完全ではなぃ
equalsメソッドがとる引数はObject型と宣言する必要がある。
6行目のequalsメソッドはオーバーライドとみなされる。→○

C.equalsメソッドを正しくオーバーライドしている

D.equalsメソッドの結果は == の結果と同じになる
==による比較は、同一のオブジェクトの比較である。
6行目では同一のオブジェクトでなくても、
それらのインスタンス変数の持つidの値が等しければtrueを返す。
→×
プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:choco_rock
読者になる
2008年08月
« 前の月  |  次の月 »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
最新コメント
Yapme!一覧
読者になる