class A
{
    subA aa;
    { //这个语句块能这样写吗?
        aa = new subA(); //如果不要"{}"大括号的话.编译出错.
    } //从没见过这种语句块,它有什么作用?
}
class subA
{    
}
-----------------------------------------
class A
{
    subA aa;    
    aa = new subA();//这样写为什么不行?
}
class subA
{    
}

解决方案 »

  1.   

    又是这个问题,看下这里的回复吧
    http://community.csdn.net/Expert/TopicView.asp?id=4301390
      

  2.   

    回复人:gogon() ( 二级(初级)) 信誉:100  2005-9-29 11:14:14  得分:0
    ?  大括号内部的东西,表示load这个内部类时初始化的动作.因为内部类没有构造函数,所以需要用这种方法来初始化.去掉这个括号的话,那里面的东西算什么?既不是函数,又不是一个成员变量的声明.你什么时候见过这种代码在类的声明里,当然出错了
      

  3.   

    java的执行语句只能在方法里面,
    声明可以在方法外,声明同时定义也可以在方法外,但单独定义就不行了