「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java の This キーワードについて知っておくべきこと。

Java の This キーワードについて知っておくべきこと。

2024 年 11 月 8 日に公開
ブラウズ:809

hings You Should Know about the This keyword in Java.

1. Java の this キーワードとは何ですか?

Java の this キーワードは、現在のオブジェクトへの参照です。これは、現在構築中または呼び出し中のオブジェクトを参照するために、インスタンス メソッドまたはコンストラクター内で使用されます。

1.1 このキーワードの目的

this キーワードの主な目的は、インスタンス変数 (フィールド) と、同じ名前のパラメーターまたはローカル変数を区別することです。また、現在のオブジェクトをパラメータとして他のメソッドに渡したり、現在のオブジェクトを返したり、コンストラクターで他のコンストラクターを呼び出したりするためにも使用されます。

1.2 例: インスタンス変数とパラメータの区別

インスタンス変数とメソッド パラメーターを区別するために 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 の間のあいまいさを解決します。 年齢

2. これを使用して現在のオブジェクトを渡す

this キーワードを使用して、現在のオブジェクトをパラメータとして別のメソッドまたはコンストラクタに渡すこともできます。

2.1 例: これをパラメータとして渡す

これをパラメータとして渡す例を次に示します:

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'
    }
}

この例では、thisadd メソッドと subtract メソッドから返され、メソッド チェーンが可能になります。

2.2 これを使用したコンストラクタの連鎖

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 のデフォルトのサイズを設定します。

3. これを使用して現在のオブジェクトを返す

this を使用して現在のオブジェクトを返すことは、メソッド チェーンでは一般的な方法です。

3.1 例: メソッドチェーンのためにこれを返す

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 を返し、メソッド チェーンとより流暢なコード スタイルを可能にします。

4. よくある間違いとベストプラクティス

this キーワードを誤って使用すると、エラーが発生したり、コードが読みにくくなる可能性があります。これをいつ、そしてなぜ使用するのかを理解することが重要です。

4.1 これを使いすぎないようにする

this は便利ですが、コードが煩雑になる可能性があるため、必要のないところでは多用しないようにしてください。

4.2 コンテキストを理解する

this が使用されているコンテキスト、特に複数のオブジェクトとメソッドが相互作用する複雑なコードベースで使用されているコンテキストを完全に理解していることを確認してください。

5. 結論

Java の this キーワードは、オブジェクト指向コードを効果的に管理するための強力なツールです。これを使用してインスタンス変数を区別し、現在のオブジェクトを渡し、メソッドをチェーンし、コンストラクターを呼び出す方法を理解することで、より流暢で読みやすく、保守しやすいコードを作成できます。

このキーワードについてご質問がある場合、またはさらに詳しい説明が必要な場合は、お気軽に以下にコメントしてください。

投稿の詳細はで読む: Java の This キーワードについて知っておくべき 4 つのこと

リリースステートメント この記事は次の場所に転載されています: https://dev.to/anh_trntun_4732cf3d299/4-things-you-Should-know-about-the-this-keyword-in-java-3k23?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3