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);
    }
 }

原文地址:https://www.cnblogs.com/soficircle/p/6598245.html