java 中,new一个新对象时,是先给成员变量赋上初值后 再来调用类中的构造函数的。

今天学习时法现一个问题,我们定义了一个Test类,在主类中new了一个他的对象,发现:在新建对象中所有的成员变量是先给定了默认初值的:0,null或者false,

之后再调用的构造函数。(如果变量是由其他函数或者表达式进行赋值的,就在此时进行函数或者表达式赋值(牵扯到其他变量的就使用此时的变量值(0或者null)进行计算))

程序如下:(输出结果为:10和1)

class Test

{

  int i;

  Test(int i)

  {

    this.i = i;

  }

  int j=i+1;

  }

public class Exercise

 {

    public static void main(String[]args)

    {

      Test t = new Test(10);

      System.out.println(t.i);

      System.out.println(t.j);

    }

 }