Java の this キーワード: とは何か、およびその使用方法と例

Java のこのキーワードは何ですか?

Java のこのキーワード メソッドまたはコンストラクターの現在のオブジェクトを参照する参照変数です。 このキーワードを使用する主な目的は、 Java これは、同じ名前を持つクラス属性とパラメーターの間の混乱を避けるためです。

Following Java における 'this' キーワードのさまざまな使用法を示します。

  • 現在のクラスのインスタンス変数を参照するために使用できます
  • 現在のクラスのコンストラクターを呼び出したり開始したりするために使用できます。
  • メソッド呼び出しの引数として渡すことができます
  • コンストラクター呼び出しの引数として渡すことができます
  • 現在のクラスインスタンスを返すために使用できます

こちらをご覧ください。 ビデオにアクセスできない場合

例を挙げて「this」キーワードを理解します。

Java の this キーワード
Java this キーワードの例

  1. CLASS: クラスアカウント
  2. インスタンス変数: a と b
  3. メソッドセットデータ: a と b の値を設定します。
  4. メソッド データを表示する: a と b の値を表示します。
  5. 主な方法: ここでは、Account クラスのオブジェクトを作成し、メソッドを呼び出してデータを設定し、データを表示します。

コードをコンパイルして実行しましょう

A と B の予想される出力は、それぞれ値 2 と 3 に初期化される必要があります。

しかし、値は 0 です。なぜですか? 調べてみましょう。

Java の this キーワード

Set data メソッドでは、引数は a および b として宣言され、インスタンス変数の名前も a および b として宣言されます。

Java の this キーワード

実行中にコンパイラは混乱します。 代入された演算子の左辺の「a」がインスタンス変数なのかローカル変数なのか。 したがって、メソッド セット データが呼び出されるときに、「a」の値は設定されません。

Java の this キーワード

解決策は「これ」キーワード

「a」と「b」の両方に、Java this キーワードの後に​​ドット (.) 演算子を付けて追加します。

Java の this キーワード

コードの実行中、オブジェクトがメソッド「setdata」を呼び出すとき。 キーワード「this」はオブジェクト ハンドラー「obj」に置き換えられます。 (下の画像を参照してください)。

Java の this キーワード

これでコンパイラは次のように認識します。

  • 左側の「a」はインスタンス変数です。
  • 一方、右辺の「a」はローカル変数です。

最大XNUMXWの出力を提供する variables が正しく初期化され、期待される出力が表示されます。

Java の this キーワード

インスタンス変数とメソッドの引数に別の名前を選択できるほど賢いと仮定してください。

Java の this キーワード

ただし、今回は、クラスの XNUMX つのオブジェクトを作成し、それぞれが set data メソッドを呼び出します。

コンパイラがオブジェクト 1 とオブジェクト 2 のどちらのインスタンス変数を処理するかを決定する方法。

Java の this キーワード

まあ、 コンパイラが暗黙的に追加する 「this」キーワードを含むインスタンス変数 (下の画像)。

Java の this キーワード

オブジェクト 1 が set data メソッドを呼び出しているときに、インスタンス変数がその参照変数によって追加されるようにします。

Java の this キーワード

オブジェクト 2 が set data メソッドを呼び出している間に、オブジェクト 2 のインスタンス変数が変更されます。

Java の this キーワード

このプロセスはコンパイラ自体によって処理されます。 この例のような例外的な状況がない限り、「this」キーワードを明示的に追加する必要はありません。

例: 「this」キーワードを使用して学習する

ステップ1) 以下をコピーしますwing メモ帳にコードを書きます。

class Account{
int a;
int b;

 public void setData(int a ,int b){
  a = a;
  b = b;
 }
 public void showData(){
   System.out.println("Value of A ="+a);
   System.out.println("Value of B ="+b);
 }
 public static void main(String args[]){
   Account obj = new Account();
   obj.setData(2,3);
   obj.showData();
 }
}

ステップ2) コードを保存し、コンパイルして実行します。

ステップ3) aとbの値はゼロとして表示されますか? エラーを修正するには、行番号 6 と 7 に「」を追加します。この」というキーワード。

this.a =a;
this.b =b;

ステップ4) コードを保存、コンパイル、実行します。 今回は、a と b の値をそれぞれ 2 と 3 に設定します。

まとめ

  • この Java のキーワードは、現在のオブジェクトを参照する参照変数です。
  • Java でのこのキーワードの使用法の XNUMX つは、現在のクラスのインスタンス変数を参照することです。
  • 現在のクラスのコンストラクターを呼び出したり開始したりするために使用できます。
  • メソッド呼び出しの引数として渡すことができます
  • Java のこのポインタは、コンストラクター呼び出しの引数として渡すことができます。
  • Java のこの演算子は、現在のクラス インスタンスを返すために使用できます。
  • Java の this は、メソッドが呼び出される現在のオブジェクトへの参照です。
  • 「this」キーワードを使用すると、インスタンス/オブジェクトのメソッド/コンストラクターでの名前の競合を避けることができます。

Java の面接の質問に関する記事をご覧ください:- こちらをクリックしてください