5

this.varの唯一の目的は、競合する可能性のある外部変数名と区別することですか?

4

4 に答える 4

5

通常、この可能性はシャドウイングしているときに発生します。シャドウイングの例を次に示します。

public class YourClass
{

       private int var;

}

あなたがこの方法を持っていることが起こります:

public void yourMethod(int var)
{

       this.var = var; // Shadowing

}

'this.var'はたまたまインスタンス変数であり、クラスの下で宣言されます。一方、私の例では、varはパラメーターでした。

于 2012-12-06T04:00:43.617 に答える
3

を使用すると、同じ名前のコンストラクター/メソッド変数またはパラメーターではなくthis、インスタンスが明示的に示されます。var

于 2012-12-06T03:47:40.973 に答える
2

1つのユースケースは次のとおりです。

メソッド/コンストラクターパラメーターの名前もvarで、そのメソッドのインスタンス変数にアクセスする場合は、this.varインスタンス変数を使用するように明示的に指示する必要があります。

于 2012-12-06T03:47:26.493 に答える
1

コンストラクターを作成するときに、引数として渡す変数の名前が、メソッド内で宣言したインスタンス変数と同じ名前になる場合があります。したがって、this.varは実際のインスタンス変数を参照します。

于 2012-12-06T03:48:27.047 に答える