【簡単に理解する】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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. まつ より:

    すいません、現在Javaを学習している者なのですが、質問させていただきたい。
    実行結果の2,3には、太郎の前に[6]は表示されないのでしょうか?

    1. リカレントテクノロジー より:

      ご指摘いただきありがとうございます。
      確かに結果表示の所で[6]が抜けております。該当箇所の記述を訂正いたしました。

      引き続き、ご愛読のほど、よろしくお願いいたします。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する