接着上一章节。
(4)显性初始化静态域
通过静态代码块来初始化某些属性域。
package com.ray.testobject; public class Test { private static int id; private static String name; static { id = 0; name = "abc"; System.out.println("id:" + id); System.out.println("name:" + name); } public static int getId() { return id; } public static void main(String[] args) { // new Test(); System.out.println(Test.getId()); } }
如果我们把new Test()放开,得到也是下面的结果。因为代码块只会执行一次。
输出:
id:0
name:abc
0
我们下面在给一个例子:
package com.ray.testobject; public class Test { private static int id = 0; private static String name; static { System.out.println("id:" + id); name = "abc"; System.out.println("name:" + name); } public Test() { System.out.println("create Test"); } public static void main(String[] args) { new Test(); new Test(); } }
输出:
id:0
name:abc
create Test
create Test
(5)初始化非静态域
package com.ray.testobject; public class Test { private String name; { name = "abc"; System.out.println("name:" + name); } public static void main(String[] args) { new Test(); new Test(); } }
输出:
name:abc
name:abc
初始化非静态域,每一次的new,代码块都会执行一次。
总结:这一章节主要讨论了显性初始化静态域,以及初始化非静态域。
这一章节就到这里,谢谢。
-----------------------------------
版权声明:本文为博主原创文章,未经博主允许不得转载。