我写一个类(如下), 突然发现不用写构造函数的名字也能编译通过, 找了一些资料没看到有这方面的说明, 请问有人知道这是怎么回事儿么?class A {    {
        statements in constructor;
    }}

解决方案 »

  1.   

    当你自己不写构造函数的时候,编译器,自动生成一个不带参数的构造函数。
    比方 类
    public class A{}会帮你自动生成public A(){
    }
    的空构造函数。呵呵
    可以参考java编程思想 
      

  2.   

    可是我在main 里面 new这个对象, 对象里面的代码就执行了。最可怕的是,如果对象里面有2个 {} 这两个都执行public class A
    {
    {
    System.out.print("aaaaaaaaa");
    } {
    System.out.print("bbbbbbbbbb");
    }} 
    ===============================================================
    class Test
    {
    public static void main(String[] arg)
    {
    Ac = new A();
            }
    }==============================================================
    运行结果:
    aaaaaaaaabbbbbbbbbb
      

  3.   

    这是代码块 如果你写成静态的代码块不用new 都能执行
      

  4.   

    如果我要是 写两个构造函数却不能用了。
    public class A
    {
        public A(){
            System.out.print("aaaaaaaaa");
        }
        public A(){
            System.out.print("bbbbbbbbbb");
        }
    }编辑器报错:Duplicate method A in type A