java.lang.Objectクラスについて

◆全てのクラスの祖先である java.lang.Objectクラス

あるクラスを定義する際にextendsで親クラスを継承していない場合、全てのクラスはjava.lang.Objectクラスを親クラスとして継承したとみなされる。

 

 

java.lang.Objectクラスに定義されているメソッド

① equals()   //あるインスタンスと自分自身とが同じかを調べる

※等値と等価の違い

等値 (a == b)   とは、完全に同一の存在。

a = 25;

b = a;

この場合、a==b

 

等価 ( a.equals(b) ) とは、同じ内容である事。

String a = "a";

String b = "a";

この場合、a != b だが  a.equals(b)

但し、等価を正しく判断させるには、何をもって同じ内容であるかをオーバーライドして定義しなければならない。

 

② toString() //自分自身の内容の文字列表現を返す

※実際に文字列として表示させたい場合は、そのクラス内でtoString()メソッドを意図する形で出力するようにオーバーライドする必要がある。

フィールドの情報をまとめてオーバーライドしておけば、toString()でまとめてその情報を呼び出す事ができる。

 

 

◆Objectクラスが存在するメリット 

①全てのクラスの親なので、多態性を用いて全てのインスタンスをザックリまとめる事が出来る

②クラスの種類を問わず、常に同じ方法で内容を比較したり、表示したり出来る。