Okapi Project

this(でぃす)

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

目的

自分自身(インスタンス)を明示的に指定したい!

thisってなに?

this とは自分のインスタンスを明示的に指定するものです。自分のクラスにあるメソッドや変数に「this」をつけることによって明示的に呼び出すことが出来ます。同名のローカル変数とインスタンス変数が存在した場合、何も指定しないでその変数を呼び出すとローカル変数の方が優先されます。そこで、自分のクラスのメンバーであるメソッドや変数を指定するために「this」を使うことが゙出来ます。

thisの説明

this の記述形式

以下が、this の記述例になります。

this.メソッド名();
this
記述することで自分のクラスの中のメソッドを呼び出すことが出来ます。
メソッド名
任意でメソッド名を記述します。
this.変数名;
this
記述することで自分のクラスの中のメソッドを呼び出すことが出来ます。
変数名
任意で変数名を記述します。

thisの使い方

this を使用してのメソッドの呼び出し

以下が this を使い自分のクラス中からメソッドを呼び出すプログラムの例です。

public class ThisTest {
    public static void main(String[] args) {
        new ThisTest();
    }
    public ThisTest() {
        //test1メソッドの呼び出し
        this.test1();
        //test2メソッドの呼び出し
        this.test2();
    }
    public void test1() {
        System.out.println("test1メソッドです。");
    }
    public void test2() {
        System.out.println("test2メソッドです。");
    }
}

以下が実行結果になります。

test1メソッドです。
test2メソッドです。

this を使用してのメソッドの呼び出し

同名のインスタンス変数とローカル変数が存在するクラスのプログラムの例です。

public class ThisTest {
    public String str = "インスタンス変数です。";

    public static void main(String[] args) {
        new ThisTest();
    }

    public ThisTest() {
        String str = "ローカル変数です。";
        //インスタンス変数の呼び出し
        System.out.println(this.str);
        //ローカル変数の呼び出し
        System.out.println(str);
    }
}

以下が実行結果です。

インスタンス変数です。
ローカル変数です。

上記の プログラムの実行結果をみてもわかるように、「this」を記述した変数はインスタンス変数が呼ばれ、何も記述しない変数はローカル変数が呼び出されていることがわかります。

ポイント

ヒント

this の省略

上記のプログラムの例では、自分のクラスのメソッドを呼ぶときに「this」をつけていましたが、この「this」は記述しないことも出来ます。以下が、そのプログラムの例です。

public class ThisTest {
    public static void main(String[] args) {
        new ThisTest();
    }
    public ThisTest() {
        //test1メソッドの呼び出し
        test1();
        //test2メソッドの呼び出し
        test2();
    }
    public void test1() {
        System.out.println("test1メソッドです。");
    }
    public void test2() {
        System.out.println("test2メソッドです。");
    }
}

以上のように記述しても「this」を記述したプログラムの例と同じような実行結果が得られます。

関連


Copyright © 2003 - 2006 Okapi Project All Rights Reserved.