【簡単に理解する】Javaのthisの使い方

javaのthisの使い方
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaで用いられるthisとは、呼び出されたコンストラクタやオブジェクトを参照するために使われるものだ。

このページではthisの使い方についてお伝えしていこう。

thisとは?

Javaのthisは、呼び出されたコンストラクタやメソッドのオブジェクトを参照するために使われる予約語(keyword)である。

例えば、人を表すPersonクラスが定義されているとする。このコードをよく見て欲しい。

このPersonクラスから作られたオブジェクトのnameの値を得るために、オブジェクトのフィールドやメソッドにアクセスする。アクセスする方法は、オブジェクト(object)を指定し、ドット演算子の次にフィールドやメソッドを書く。

object

では、呼び出された側のオブジェクト(object)のメソッド(whatIsYourName())の中で、同じ呼び出された側の中にあるフィールドやメソッドにアクセスするコードはどうなっているだろう。別のオブジェクトからではなく、同じオブジェクトの中からアクセスする場合である。この場合、objectの代わりにthisを使って、同じオブジェクト内にあることをを指定する。

呼び出し

どんな場合にthisが必要か

実は,Personクラスはthisを省略して書くことも可能である。省略するとこうなる。

では、どんな場合にthisが必要になるのだろうか。それは、コンストラクタやメソッドで引数の名前とフィールドの名前が同じである場合だ。この場合は、引数とフィールドをなんらかの方法で区別しなければならない。thisを使うと同じ名前でも区別することができる。thisをつけたnameは、オブジェクトフィールドとなり、thisをつけなければ引数となる。

this

また,ローカル変数の名前とフィールド名前が同じでも、thisを使って区別できる。

サンプルプログラム

このサンプルプログラムは、Personクラスを実際に使ってこれまで出てきたいくつかのオブジェクトへのアクセスの方法を示している。

実行結果

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

  • [1] クラスを定義する。
  • [2] フィールドnameを定義する。
  • [3]-[4] コンストラクタによりnameの初期値を設定する。
  • [5]-[6] メソッドprintNameによりnameの値を表示する。
  • [7]-[8] メソッドwhatIsYourNameにより,名前を表示する。
  • [10] Personクラスのコンストラクタの引数(名前)に「太郎」を設定してobjectを作る。
  • [11] objectのフィールドnameを表示する。
  • [12] objectのprintNameメソッドを呼び出す。
  • [13] objectのwhatIsYourNameメソッドを呼び出す。

まとめ

このページではJavaのthisの使い方についてお伝えした。オブジェクト指向のJavaではなくてはならないものなので、ぜひ理解していただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*

新入社員エンジニアへの配布用!
自走するエンジニアの心得 小冊子

エンジニア新入社員への教育用小冊子を期間限定配布中です

無料ダウンロードはこちらから ご自身の学習に役立てたい方はこちら