3回まわってウンと働く人のブログ

犬顔メガネエンジニアのブログ。そのうちウンと働きます。そのうち。

Java - thisの使い方2

 

Java - thisの使い方 - 3回まわってウンと働く人のブログ

 

前にこんな記事を書いたけど、説明が足りなさ過ぎたので、追記します。

 

Java - thisの使い方2

 

一番簡単な例

--------------------------------------------

public class MyClass {

  private String aaa;

 

  public String setAaa(String aaa) {

      this.aaa = aaa;
  }

}

--------------------------------------------

 

 

このクラスは[ MyClass ]という名前のクラスで、

このクラスの中で、[ String aaa ]という変数が定義されています。

 

さて、このクラスのメソッドである[ setAaa ]というメソッドを定義しました。

このメソッドでの引数は[ String aaa ] です。

つまり、クラスで定義した変数と名前がかぶっていることがわかると思います。

このような場合で、thisメソッドを使います。

 

this.aaa = aaa;

 

(引数であるaaaを、this.aaaという変数に代入しています)

つまり、aaaがどちらの変数を指しているかをわかるようにするために使用します。

this.aaa がメンバ変数(上で先に定義したクラスの変数)で、

aaaメソッド変数(引数として定義している変数)です。

メソッド内では、aaaと書くと、基本的にメソッド変数とみなされます。(メソッド変数が優先のため)

なので、メソッド内に同じ名前の変数がある場合、thisを使用してメソッド変数と見分けをするようにします。

 

 

今回は名前の重複を理由にして使用する、ということですが、重複してない場合でも明示的にする理由でthisを使用します。まぁ、あとから変数を足して同じ名前にしちゃった時のバグを減らす意味でも使用した方がベター。

 

ちなみにthisは「このクラスの」ぐらいで覚えておきましょう。

他のクラスのときは定義(宣言)したときの名前で、[変数名.メソッド] or [変数名.メンバ変数]で参照できますが、自分のクラスは名前を付けてない(宣言していない)ので、代わりにthisで、みたいな感じです。

 

(余談ですが、今わからなくても、そのうち理解できる日が来るのですぐに理解しようとしなくてもいいと思います。)

 

それでは。