「これ」がどのように機能するかを完全に理解しようとしています。前回の投稿で、「this」キーワードを使用する理由がわかりました。
静的についての私の理解は、クラスにはそのメンバーのコピーが 1 つあるということです。「this」は、現在のオブジェクトを表すために使用されます。すべてのオブジェクトで、静的メンバー変数は同じですが、なぜ「これ」が静的メンバー変数で機能するのですか?
コード:
public class OuterInnerClassExample
{
public static void main(String[] args)
{
OuterClass outClassObj = new OuterClass(10);
outClassObj.setInt(11);
outClassObj.setInt(12);
System.out.println("Total Count: " + outClassObj.getCount() );
}
}
class OuterClass
{
private int test;
private static int count; // total sum of how many new objects are created & the times all of them have been changed
public OuterClass(int test)
{
this.test = test;
// count += 1; // preferred as count is static
this.count += 1; // why does this work
}
public int getInt()
{
return this.test;
}
public int getCount()
{
return this.count;
}
public void setInt(int test)
{
this.test = test;
// count += 1; // preferred as count is static
this.count += 1; // why does this work
}
class SomeClass
{
private OuterClass outClassObj;
public SomeClass(int var)
{
outClassObj = new OuterClass(var);
}
public int getVar()
{
return this.outClassObj.getInt();
}
public int getCount()
{
return this.outClassObj.getCount();
}
public void setVar(int var)
{
// OuterClass.this.test = var; // can do this
outClassObj.setInt(var); // preferred
// OuterClass.count += var; // should do this
OuterClass.this.count += var; // why does this work
}
}
}
また、setVar メソッドでは、ClassName.this を使用してオブジェクトの値を操作できますが、setter を使用した方がより明確であるため、より良いと思います。ここで「これ」を使用する利点はありますか?
説明しようとしているものの例を示すコードを投稿してください。