10.Object 
 Objectクラスはすべてのクラスの親クラスである。このクラスで定義されているメソッドはすべてサブクラスであるすべてのクラスで使用できる。逆に言えばこのクラスのメソッドは必要に応じてサブクラスでオーバーライドする必要があるということである。特にequalsメソッド、toStringメソッド、cloneメソッドはオーバーライドすることをおすすめする。
 

import java.langObject

コンストラクタ
Object()
      通常このクラスのインスタンスを作成する必要はない。
 
メソッド
pretected
Object
clone()
      自分自身の複製を作成する。例えばメンバー変数がint型などのプリミティブ型の場合はそれらをコピーするだけでよいが、メンバー変数に他のクラスのインスタンスがある場合、そのインスタンスの参照先をコピーするだけでよいか、それともそのインスタンスの複製をそのクラスのcloneメソッドを呼び出して作成する必要があるかは、クラスによって異なり、これはプログラマに任される。
      cloneメソッドを実装した場合はclone可能であることを示すために、Cloneableインターフェースをインプリメントする。逆にCloneableをインプリメントしていないクラスのcloneメソッドを呼ぼうとした場合にはCloneNotSupportedExceptionが投げられる。
boolean equals(Object obj)
      引数で与えられたインスタンスと自分自身が同じならばtrueを返す。クラスによって同じという概念が異なる場合がある。例えばメンバー変数にあるクラスが定義されている場合はその参照先が同じ(==演算子を使用する)ならば「同じ」と定義するのか、その中身が同じ(そのクラスの equalsメソッドを呼び出す)ならば「同じ」と定義するのかは、プログラマに任される。
String toString()
      このクラスの文字列表記を定義します。例えばデバッグ情報などを表示させたい場合には、このクラスのメンバー変数の値をすべて文字列に変換する。
      オーバーライドしない場合は、クラス名とそのインスタンスのハッシュコード(16進数)が返されます。ハッシュコードとは、すべてのインスタンスに固有の数字で、実行される度に異なる値になることもある。プラットフォームによって異なりますが、Windowsの場合はそのインスタンスが生成されたメモリアドレスがそのままハッシュコードになる。
void notify()
      このオブジェクトのモニターで待機中のスレッドを 1 つ再開する。詳しくは スレッド間通信参照
void notifyAll()
      このオブジェクトのモニターで待機中のスレッドをすべて再開する。詳しくは スレッド間通信参照
void wait()
      こ他のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させる。詳しくは スレッド間通信参照
void wait(long timeout)
      こ他のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、指定された時間(単位はミリ秒)が経過するまで、現在のスレッドを待機させる。詳しくは スレッド間通信参照