Java の this キーワードは、現在のオブジェクトへの参照です。これは、現在構築中または呼び出し中のオブジェクトを参照するために、インスタンス メソッドまたはコンストラクター内で使用されます。
this キーワードの主な目的は、インスタンス変数 (フィールド) と、同じ名前のパラメーターまたはローカル変数を区別することです。また、現在のオブジェクトをパラメータとして他のメソッドに渡したり、現在のオブジェクトを返したり、コンストラクターで他のコンストラクターを呼び出したりするためにも使用されます。
インスタンス変数とメソッド パラメーターを区別するために this が使用されている次の例を考えてみましょう:
public class Employee { private String name; private int age; public Employee(String name, int age) { this.name = name; // 'this.name' refers to the instance variable this.age = age; // 'this.age' refers to the instance variable } public void setName(String name) { this.name = name; // 'this.name' refers to the instance variable } public String getName() { return this.name; // 'this.name' refers to the instance variable } }
この例では、 this キーワードを使用して、インスタンス変数 name および age とコンストラクター パラメーター name の間のあいまいさを解決します。 と 年齢 。
this キーワードを使用して、現在のオブジェクトをパラメータとして別のメソッドまたはコンストラクタに渡すこともできます。
これをパラメータとして渡す例を次に示します:
class Calculator { int result; Calculator add(int value) { this.result = value; return this; // returning the current object } Calculator subtract(int value) { this.result -= value; return this; } void displayResult() { System.out.println("Result: " this.result); } } public class Main { public static void main(String[] args) { Calculator calc = new Calculator(); calc.add(10).subtract(3).displayResult(); // chaining methods using 'this' } }
この例では、this が add メソッドと subtract メソッドから返され、メソッド チェーンが可能になります。
this キーワードを使用すると、あるコンストラクターを別のコンストラクターから呼び出すことができ、コンストラクターの連鎖が容易になります。
public class Box { private int length, width, height; public Box() { this(0, 0, 0); // calls the three-parameter constructor } public Box(int length, int width, int height) { this.length = length; this.width = width; this.height = height; } public void displayDimensions() { System.out.println("Dimensions: " length "x" width "x" height); } }
この例では、引数のないコンストラクターが this を使用して 3 引数のコンストラクターを呼び出し、 Box のデフォルトのサイズを設定します。
this を使用して現在のオブジェクトを返すことは、メソッド チェーンでは一般的な方法です。
this を返すと、ビルダーや API でよく見られる流暢なインターフェイスが有効になります。
class Person { private String firstName, lastName; Person setFirstName(String firstName) { this.firstName = firstName; return this; } Person setLastName(String lastName) { this.lastName = lastName; return this; } void displayFullName() { System.out.println("Full Name: " this.firstName " " this.lastName); } } public class Main { public static void main(String[] args) { Person person = new Person(); person.setFirstName("John").setLastName("Doe").displayFullName(); } }
ここで、 setFirstName メソッドと setLastName メソッドは this を返し、メソッド チェーンとより流暢なコード スタイルを可能にします。
this キーワードを誤って使用すると、エラーが発生したり、コードが読みにくくなる可能性があります。これをいつ、そしてなぜ使用するのかを理解することが重要です。
this は便利ですが、コードが煩雑になる可能性があるため、必要のないところでは多用しないようにしてください。
this が使用されているコンテキスト、特に複数のオブジェクトとメソッドが相互作用する複雑なコードベースで使用されているコンテキストを完全に理解していることを確認してください。
Java の this キーワードは、オブジェクト指向コードを効果的に管理するための強力なツールです。これを使用してインスタンス変数を区別し、現在のオブジェクトを渡し、メソッドをチェーンし、コンストラクターを呼び出す方法を理解することで、より流暢で読みやすく、保守しやすいコードを作成できます。
このキーワードについてご質問がある場合、またはさらに詳しい説明が必要な場合は、お気軽に以下にコメントしてください。
投稿の詳細はで読む: Java の This キーワードについて知っておくべき 4 つのこと
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3