<分区>
我试图完全理解“这个”是如何工作的。在我的 previous post我理解了为什么我们使用“this”关键字。
我对静态的理解是该类具有该成员的一个副本。 “this”用于表示当前对象。对于所有对象,静态成员变量都是一样的,那么为什么“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来操作objects的值,不过我觉得还是用setter比较好,这样更清晰。在这里使用“this”有什么我错过的优势吗?
请发布代码以显示您要解释的内容的示例。