В чем разница между этими двумя способами создания новых объектов класса следующим образом:
Test t1=new Test();
Test t2=new Test(){ };
Когда я попробовал следующий код, я мог видеть, что оба объекта могут получить доступ к методу foo()
, но t2 не может получить доступ к variable x
(variable 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);
}
}