看到一段代码,请看下文代码中的注释部分,我发现就是两个括弧,把putValue函数给包裹了起来,但是如果没有括弧,就会出现语法错误请问,括弧是不是一个构造函数呢?
public class OpenSpecificationAction extends AbstractAction {
                   // 这部分以下
{
putValue(Action.NAME, "Open YBKP_Specification...");
}
// 这部分以上
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub }}

解决方案 »

  1.   

    初始化代码块,类初始化时执行。public class OpenSpecificationAction { // 这部分以下
    {
    System.out.println("run here.");
    } public static void main(String[] args) {
    OpenSpecificationAction t = new OpenSpecificationAction();
    t.show();
    } public void show() {
    System.out.println("this is show method.");
    }}结果如下:run here.
    this is show method.
      

  2.   

    标准叫法 "构造代码块"
    它的执行顺序,在static代码块之后,在构造函数之前.
      

  3.   

    我只见过
    static{
        //........
    }
    这样的代码,没见过您说的这样的,我得多学习咯
      

  4.   

    不加static的话,可以理解成和写在构造方法里是一样的效果。
      

  5.   

    非静态的构造代码块的效果相当于把这块代码复制到每一个constructor的第一行
      

  6.   

    标准叫法 "构造代码块" 
    它的执行顺序,在static代码块之后,在构造函数之前.
    学习了,我只听说过静态代码块static{ 
        //........ 

    但这个还是第一次看到