您的位置:首页 > 编程语言 > Java开发

从头认识java-4.7 构造器初始化(3)

2015-10-27 23:26 363 查看
接着上一章节。
(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,代码块都会执行一次。
 
总结:这一章节主要讨论了显性初始化静态域,以及初始化非静态域。
 这一章节就到这里,谢谢。-----------------------------------目录
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java