如题:代码如下:
{
System.out.println(b);
System.out.println("o");
System.out.println("o");
System.out.println("k");
}
在类里面写这样一段代码,所有的代码仅仅包含在一对大括号,也没有方法名,请问下高手如何理解这样一段代码,难道它是构造函数的一种吗?

解决方案 »

  1.   

    劝楼主好好学习下java基础知识
      

  2.   

    谢谢,我的java基础确实不行。呵呵
      

  3.   

    【修饰符】 class 类名【extends 父类名】【implements 接口名】
     {   成员变量;//表明类的状态
         成员方法;//描述类的行为
     }水果类
    {  颜色;//属性
       价格;//属性
       吃()//方法
       { 
       }
    }
    上面的写法是不对的,一个类可以不定义属性,但必须要有方法,个人理解。如有不对,欢迎纠正。建议你写一个完整的程序出来,可以将问题描叙清楚。
      

  4.   

    就叫 块还有一种是前面加static的static {}
    这种见得应该更多一些
      

  5.   

    例如:
    class A {
      sysout...
      sysout...
    }
    这的定义一个类,类没有main方法,也就是说不能独立运行,
    或者是8 楼说的
    class A {
      static {
       //这叫静态代码块
      }
       
      {
       //这叫代码块
       }
    }你说的构造方法和这个无关。
    如果你不显示地定义构造方法,系统会默认地提供无参数的,名字由类型而定的无参数构造方法。
    静态代码块是Java虚拟机加载类的时候执行的,
    代码块是对 对象的初始化。
      

  6.   

    static代码块,static块执行的速度比类的执行速度快,类和static块同时加载在JVM上,但是类加载在JVM上要实例化,因此static块的执行速度快
      

  7.   

    这个就是构造初始化块吧,只不过lz提供的代码没做什么事情,在new这个类的对象的时候,这个初始化块都会执行的,而且是先执行这个,然后执行构造函数的。作用的话其实我认为意义不是很大,因为平时写代码的时候都没这么用过
      

  8.   

    谢谢大家的讨论,有多少个这样的代码块,new初始化对象的时候都会调用。
      

  9.   

    java编程思想里叫非静态实例初始化.
    在类的空间分配完后执行,只能为类变量赋值,而不能直接引用类变量.
    楼主可以试验一下.
      

  10.   

    只能说建议楼主好好看看java语言细则吧,,这个明显是基础啊!!!
      

  11.   

    是代码块,常见静态块
    static{....} //优先于构造方法执行,他在JVM加载类的时候就一并执行了。
      

  12.   


    一个类可以不定义属性,但必须要有方法,亲,我顶一个class A 什么都不写不可以啊,你这话我看不懂
      

  13.   

    这就是一个非静态块而已,在ClassLoader加载类时执行。和方法有本质区别,方法是可以被调用的,它就加载时运行一次,没有句柄,无法被别的对象调。