java—静态模块,模块,构造方法

直接亮我们的代码:

package Demo;

public class Demo {
	public static void main(String[] args) {

		Test t1 = new Test();

		Test t2 = new Test();

	}

}

class Test {

	static int x = 10;

	int y = 6;
	static {

		x = x + 5;

	}

	{

		y = y + 10;

	}

	static {

		x = x + 5;

	}

	public Test() {// 构造方法

		x = x + 5;
		{

			System.out.println(x * y);

		}
	}
}

首先我们来看在main()方法中实例化对象t1的的过程:

首先应当执行静态模块:即执行两次x=x+5;这个时候x=20了,然后执行普通模块:y=y+10;这个时候y=16;

然后进入构造器:x=x+5;并且打印x*y;x在构造器中的结果是25了,故25*16=400;

然后我们看看实例化对象t2的过程:

由于静态模块只执行一次,所以,x=25的值可以确定了,然后我们看看y值变化。y的值上次已经算出来了是16,所以这次应当也是16!所以我们只需要计算构造器里面的公式了,也就是(25+5)*16 = 480,打印结果是这样的。

所以以下总结:

执行顺序先后:静态模块、模块、构造器

特性:静态模块只执行一次!

猜你喜欢

转载自blog.csdn.net/xdxx152/article/details/83143843