このキーワード Java
このキーワードは何ですか Java?
このキーワード Java メソッドまたはコンストラクターの現在のオブジェクトを参照する参照変数です。 このキーワードを使用する主な目的は、 Java これは、同じ名前を持つクラス属性とパラメーターの間の混乱を避けるためです。
このキーワードの使用 Java
以下は「this」キーワードの様々な使用例です。 Java:
- 現在のクラスのインスタンス変数を参照するために使用できます
- 現在のクラスのコンストラクターを呼び出したり開始したりするために使用できます。
- メソッド呼び出しの引数として渡すことができます
- コンストラクター呼び出しの引数として渡すことができます
- 現在のクラスインスタンスを返すために使用できます
クリック こちら ビデオにアクセスできない場合
例を挙げて「this」キーワードを理解します。
- CLASS: クラスアカウント
- インスタンス変数: a と b
- メソッドセットデータ: a と b の値を設定します。
- メソッド データを表示する: a と b の値を表示します。
- 主な方法: ここでは、Account クラスのオブジェクトを作成し、メソッドを呼び出してデータを設定し、データを表示します。
コードをコンパイルして実行しましょう
A と B の予想される出力は、それぞれ値 2 と 3 に初期化される必要があります。
しかし、値は 0 です。なぜですか? 調べてみましょう。
Set data メソッドでは、引数は a および b として宣言され、インスタンス変数の名前も a および b として宣言されます。
実行中、コンパイラは、代入演算子の左側の「a」がインスタンス変数なのか、ローカル変数なのかを混乱します。そのため、メソッド set data が呼び出されたときに、「a」の値は設定されません。
解決策は「これ」キーワード
「a」と「b」の両方を Java このキーワードの後にドット (.) 演算子が続きます。
コードの実行中、オブジェクトがメソッド「setdata」を呼び出すとき。 キーワード「this」はオブジェクト ハンドラー「obj」に置き換えられます。 (下の画像を参照してください)。
これでコンパイラは次のように認識します。
- 左側の「a」はインスタンス変数です。
- 一方、右辺の「a」はローカル変数です。
この variables が正しく初期化され、期待される出力が表示されます。
インスタンス変数とメソッドの引数に別の名前を選択できるほど賢いと仮定してください。
ただし、今回は、クラスの XNUMX つのオブジェクトを作成し、それぞれが set data メソッドを呼び出します。
コンパイラがオブジェクト 1 とオブジェクト 2 のどちらのインスタンス変数を処理するかを決定する方法。
まあ、 コンパイラが暗黙的に追加する 「this」キーワードを含むインスタンス変数 (下の画像)。
オブジェクト 1 が set data メソッドを呼び出しているときに、インスタンス変数がその参照変数によって追加されるようにします。
オブジェクト 2 が set data メソッドを呼び出している間に、オブジェクト 2 のインスタンス変数が変更されます。
このプロセスはコンパイラ自体によって処理されます。 この例のような例外的な状況がない限り、「this」キーワードを明示的に追加する必要はありません。
このキーワード Java 例を挙げて
例: 「this」キーワードを使用して学習する
ステップ1) 次のコードをメモ帳にコピーします。
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 現在のオブジェクトを参照する参照変数です。
- このキーワードの使用例の1つは Java 現在のクラスインスタンス変数を参照する
- 現在のクラスのコンストラクターを呼び出したり開始したりするために使用できます。
- メソッド呼び出しの引数として渡すことができます
- このポインター Java コンストラクタ呼び出しの引数として渡すことができる
- この演算子は Java 現在のクラスインスタンスを返すために使用できます
- これで Java メソッドが呼び出されている現在のオブジェクトへの参照です。
- 「this」キーワードを使用すると、インスタンス/オブジェクトのメソッド/コンストラクターでの名前の競合を避けることができます。
私たちの記事をチェックしてください Java インタビューの質問:- こちらをクリックしてください