LoginSignup
11
13

More than 3 years have passed since last update.

【Java】this について

Last updated at Posted at 2020-11-20

this

Java(というよりプログラミングにおいて)の this について学んだことのアウトプットです。

thisとは

「this」 とはクラスの中(メソッド内)でインスタンス
を扱うための特殊な変数です。

「自クラスのインスタンスであることを明示的に指し示す機能」を持ちます。

なぜ、thisをつかうのか

結論からいうと理由は

ローカル変数と フィールド変数 は別々のものなので、同じ名前でも作ることが可能なため、同じ名前で使われたときにどっちなのかわからなくなってしまいます。そのために、
フィールド変数にはthisをつける」 という書き方がよく使われます。

どこに、 thisをつかうのか

上にも書きましたが、「this を使う場所フィールド変数名の 頭です

例:this.フィールド名

また、this は クラス内のメソッドの定義の中でのみ使用できます。
thisはメソッドが呼ばれた時に、そのメソッドを呼び出しているインスタンスに置き換えられます。

thisを使ってみる

ポケモン図鑑をプログラムしてみました。
Pokemon.java の中で フィールド変数 を定義し、それをクラス内で this をつけて使いまわしているのがわかるかと思います。

//【Pokemon.java】
public class Pokemon {
    // フィールド変数
    public int number;
    public String name;
    public String category;
    public String type;
    public String description;

    public Pokemon(int number, String name, String category, String type, String description) {
        this.number = number;
        this.name = name;
        this.category = category;
        this.type = type;
        this.description = description;
    }

}

こちらが呼び出し側のクラスです。

//【Main.java】
public class Main {

    public static void main(String[] args) {
        // 呼び出し(new した後で、引数へ与えられた値を元に Pokemon が生成されます)
        Pokemon pikachu = new Pokemon(025, "ピカチュウ", "ねずみポケモン", "でんき",
                "つくる でんきが きょうりょくな ピカチュウほど ほっぺの ふくろは やわらかく よく のびるぞ");

        // 使用時
        System.out.print("No." + pikachu.number);
        System.out.println(" " + pikachu.name);
        System.out.print(pikachu.category);
        System.out.println(" " + pikachu.type + "タイプ");
        System.out.println(pikachu.description);

    }
}

実行結果

No.21 ピカチュウ
ねずみポケモン でんきタイプ
つくる でんきが きょうりょくな ピカチュウほど ほっぺの ふくろは やわらかく よく のびるぞ

参考文献・記事

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13