Okapi Project

instanceof(いんすたんすおぶ)

バージョン
2004 年 01月 05 日 Ver.1.0
作成者
H.Izumi ( Xware )

目的

オブジェクトのクラスを判定したい!

instanceofってなに?

 抽象クラスを利用する場合には多くのサブクラスを扱う場合があります。このときに instanceof を使うとオブジェクトのクラスを調べる(if 文を使って判定)ことが出来ます。

instanceofの説明

instanceof の書き方

if(変数名 instanceof クラス名){
  処理; }

変数名
任意の変数名を記述します。
クラス名
任意のクラス名を記述します。
処理
任意の処理を記述します。

instanceofの使い方

instanceof の使用例

以下は、instanceof を使って同パッケージ内にコンストラクタに String 型の引数を持っている「StaticTest」と「MainTest」クラスを配列に格納し(同クラスにそれぞれ格納していく)、その配列オブジェクトのクラスを判断する簡単なプログラムの例です。

public class InstanceofTest {
    public static void main(String[] args) {
        Object obj[] = new Object[2];
        obj[0] = new StaticTest("StaticTest型");
        obj[1] = new MainTest("MainTest型");

        for (int i = 0; i < obj.length; i++) {
            //objがnullでないかの判断
            if(obj[i] == null){
                return;
            }			
            //instanceofを使ってクラスの判断
            if (obj[i] instanceof MainTest) {
                System.out.println(i + "番目は「MainTest」クラスです。");
            } else {
                System.out.println(i + 
                "番目は「MainTest」クラスではありません。");
            }
        }
    }
}

そして、以下が実行結果です。

0番目は「MainTest」クラスではありません。
1番目は「MainTest」クラスです。

以上の実行結果をみてわかるように instanceof を使うことによってオブジェクトのクラスを調べることが出来ます。

ポイント

ヒント

instanceof の利用

Java では全てのクラスは Object クラスを継承しています。Object クラスを入れる変数に、色々なクラスのオブジェクトを格納することが出来ます。そこで、オブジェクトがどんなクラスであるのかを判断するのに必要となってくるのが、instanceof です。

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.