this(12)就是调用本对象的带一个参数的构造方法就是第二个构造函数,程序首先执行System.out.println("123");然后用不含参数的构造方法创建类对象,由于不含参数的构造方法调用了含一个参数的构造方法,所以先执行含一个参数的构造方法,然后执行System.out.println("bbb");——以前看过点Java,现在改学VC/C++了,第一次来贵论坛,见笑了![email protected]

解决方案 »

  1.   

    恩,基本是这样
    但我认为System.out.println("123");应该是在执行main函数内容之后才会执行的
      

  2.   

    但是,为什么先执行System.out.println("123");再执行构造函数里面的System.out.println("ccc");和System.out.println("bbb");?不是应该先构造对象吗?
      

  3.   

    {
         System.out.println("123");
        }
    的执行为什么总在最前?这个我也不明白
    由于程序先执行Main,所以使用不带参数的构造函数,而this(12)是调用构造函数的方法——在调用构造函数时可以使用this调用另一个构造函数,但只能使用一次(昨晚看Thinking in java里说的,还没有实验过:p )
      

  4.   

    恩,你可以理解为
    {
         System.out.println("123");
        }
    和 int a;
    一样只是一个命令行!
      

  5.   

    public class b 
    1   {
            b()
    7        {
    8           this(12);
    12           System.out.println("bbb");
    13        }
            b(int x)
    9        {
    10         System.out.println("ccc");
    11        }
    2       {
    3        System.out.println("123");
    4       }
        public static void main(String[] args)
    5    {
    6    new b();
    14    }
    15   }
      

  6.   

    System.out.println();方法 可以说是一个独立的语句,System.out本就是一对象执行println()方法也该作为一个全局方法处理(虽然Java语言没有全局方法的概念,但可以先这么理解),也就是说在类对象产生之前就已经存在一个对象,并且调用该对象的方法执行程序!