3

したがって、クラスメンバーとパラメーターが同じ名前を使用する場合、コンストラクターでこれがどれほど便利なキーワードであるかを知っています。

インスタンス変数/メンバーと関数にアクセスするために、コンストラクターの外でこれをよく使用しますか? これは良い習慣ですか?このキーワードを使い続けるべきか、使わないべきか?

class Test {
    private int num = 0;

    Test(int num) {
        this.num = num;
    }

    public int getNum() {
        return this.num;     // I could write num;
    }

    public void doSomething() {
        System.out.println(this.getNum());    // I could have just invoked getNum()
    }

}
4

5 に答える 5

2

何よりもまず、個人 (またはチーム) のスタイルの問題です。読みやすさに貢献すると考える開発者もいれば、冗長で扱いにくいと考える開発者もいます。

そうは言っても、異なるスコープ間の混乱を防ぐため、使用することをお勧めしますthis

が常に使用されている場合this、コードの一部を検査する開発者は、変数が参照されるたびにそのスコープを確認するためだけに上にスクロールする必要はありません。

于 2013-04-02T15:33:55.997 に答える
1

チームで作業する場合、最も重要なことは、すべてのメンバーが同じスタイルを使用することです。たとえば、名前の書式設定、camelCase または mCamelCase を使用し、このキーワードをあらゆる場所で使用することさえあります。

さまざまなスタイルを使用したコードほど読みにくいものはありません。

参加しているプロジェクトごとにスタイルが異なる場合がありますが、すべてのメンバーはルールに従う必要があります。

柔軟に対応してください。

于 2013-04-02T15:28:48.543 に答える
0

それ以外の場合は、まったく異なる変数/メソッドを参照する場合にのみ使用する必要があります。

たとえば、上記のコンストラクターでは、それを使用していなければ、コンストラクターに渡されたパラメーターを参照することになります。

doSomething() メソッドでは、 this キーワードは必要ありませんでした。

于 2013-04-02T15:33:48.230 に答える