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