Previous | Next | Trail Map | Writing Java Programs |

オブジェクト、クラス、インタフェース


Object クラス

Object クラスは Java 開発環境でクラス階層ツリーの頂点である。 Java システムのすべてのクラスが Object クラスの(直接あるいは間接的な)下位クラスである。 Object クラスは、自分自身と別のオブジェクトとの比較、文字列への変換、条件変数での対応、条件変数が変更した他のオブジェクトの通知、オブジェクトのクラスの返却など、すべてのオブジェクトが能力として持っていなくてはならない基本的な状態と振る舞いを定義する。

clone() メソッド

「保留: clone() について学習しなさい。it() について書く。」
「保留: クーロン化可能なインタフェースの言及を含む」

equals() メソッド

2つのオブジェクトの相等性を比較するためには、 equals() を使用する。 オブジェクトが等しいならば、このメソッドは true を返し、そうでなければ false を返す。 相等性はオブジェクトが同じオブジェクトであることを意味しないので注意する。 相等性に関して 2 つの Integers 、 one anotherOne 、をテストするコードを考える。

Integer one = new Integer(1), anotherOne = new Integer(1);

if (one.equals(anotherOne))
    System.out.println("objects are equal");

oneanotherOne は2つの異なる別のオブジェクトを参照するけれども、 このコードはobjects are equal と表示する。 それらが同じ整数値を含むため、等しいと考えられる。

クラスは適切な相等性テストを提供するためにこのメソッドをオーバーライドするべきである。 equals() メソッドは、それらが機能上等しいかどうかを見るためにオブジェクトのコンテンツを比較し、もしそれらが等しければ true を返す。

getClass() メソッド

getClass() メソッドは、このオブジェクトのクラスの実行時表現を返すfinal メソッドである(オーバーライドされることができない)。 このメソッドは、クラス名、そのスーパークラス、実装するインタフェース名などクラスに関するさまざまな情報について、Class オブジェクトを問い合わすことができるClass オブジェクトを返す。 この例のメソッドはオブジェクトのクラス名を得て表示する。

void PrintClassName(Object obj) {
    System.out.println("The Object's class is " + obj.getClass().getName());
}

getClass() の1つの有用な使用方法は、コンパイル時にクラスが何であるか知らずに、クラスの新規インスタンスを作成することである。 この例のメソッドは、Object から継承する任意のクラスになり得る (どんなクラスでもでありえることを意味する) obj と同じクラスの新規のインスタンスを作成する。

Object createNewInstanceOf(Object obj) {
    return obj.getClass().newInstance();
}

toString() メソッド

Object の toString() メソッド はオブジェクトの文字列を返す。 オブジェクトを表示するために toString() を使用することができる。 例えば、次のような現在のスレッドの文字列を表示することができる。

System.out.println ( Thread.currentThread () .toString ());

toString() メソッドはデバックに非常に役立ち、すべてのクラスでこのメソッドをオーバーライドする必要がある。

他の節で説明するオブジェクトメソッド

Object クラスは、ガベージコレクトする前にオブジェクトをクリーンアップするメソッドの finalize() を提供する。 このメソッドのガベージコレクション間の役割については、使用しないオブジェクトのクリーンアップで説明する。 同じく、 finalize() メソッドの書き方 では、クラスに必要な終了の際の処理をする finalize() メソッドのオーバライドの書き方を説明する。

Object クラスは同じく5つのメソッドを提供する。


マルチスレッドのJava プログラムを書く場合は、これらは重要である。 これらのメソッドはスレッドが同期をとっていることを確認するのに役立ち、これは制御のスレッド(in the Writing Java Programs trail)で説明される。特にスレッドの同期のページに注意すること。


Previous | Next | Trail Map | Writing Java Programs |

オブジェクト、クラス、インタフェース