天天看点

java定义显性构造函数_从头认识java-4.7 构造器初始化(3)

接着上一章节。

(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

我们下面在给一个例子:

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,代码块都会执行一次。

总结:这一章节主要讨论了显性初始化静态域,以及初始化非静态域。

这一章节就到这里,谢谢。

-----------------------------------

版权声明:本文为博主原创文章,未经博主允许不得转载。