这两种实例化一个类的方式有何不同:
Test t1=new Test();
Test t2=new Test(){ };
当我尝试以下代码时,我发现两个对象都可以访问方法foo()
,但是t2无法访问变量x(变量x无法解析)。public class Test
{
int x=0;
public void foo(){ }
public static void main (String args[])
{
Test t1=new Test();
Test t2=new Test(){ };
t1.x=10;
t2.x=20;
t1.foo();
t2.foo();
System.out.println(t1.x+" "t2.x);
}
}
t1.x+" "t2.x
转换为t1.x+" "+t2.x
,使其可编译,那么它就可以成功编译。 - JB Nizet