日期:2014-05-20  浏览次数:20766 次

小问题求解释!!
class A{
public synchronized void say1(){
System.out.println("say1111111");
}
public synchronized void say2(){
System.out.println("say2222222");
}
}
class B{
public A a ;
B(A a){
this.a = a;
}
a.say1();//为何这里编译不能通过?

}
已经声明了为何不能调用A的方法?
如果 new A().say1()就行?求解释!!

------解决方案--------------------
a.say1();//为何这里编译不能通过?

a.say1();不能写在class里面,必须写到语句块或方法中。


如果 new A().say1()就行?求解释!!
没看明白是啥意思,如果是用new A().say1()替换a.say1(),也是编译不通过的,这是java的语法决定的。