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

thinking in java test练习(13)(14)

2016-09-03 10:45 561 查看
练习(13):验证前面段落中的语句。

public class test5_7_13 {
public static void main(String[] args){
System.out.println("inside main()");
//        Cups.cup1.f(99);
}
static Cups cups1 = new Cups();
static Cups cups2 = new Cups();
/**
* 输出结果
* Cup (1)
Cup (2)
Cups()
Cups()
inside main()
说明:1,无论new多少个对象,静态初始化只进行一次
2,先于main运行
*/
}
class Cup{
Cup(int marker){
System.out.println("Cup (" + marker + ")");
}

void f(int marker){
System.out.println("Cup (" + marker + ")");
}
}

class Cups{
static Cup cup1;
static Cup cup2;
static {
cup1 = new Cup(1);
cup2 = new Cup(2);
}
Cups(){
System.out.println("Cups()");
}
}


练习(14):编写一个类,拥有两个静态字符串域,其中一个在定义处初始化,另一个在静态块中初始化。现在,加入一个静态方法用以打印两个字段值。请证明它们都会在被使用之前完成初始化动作。

public class test5_7_14 {
public static void main(String[] args){
staticTest test = new staticTest(99);
test.f(100);
/**
* 输出结果:
* 1
* 99
* 100
* 说明确实是在被使用前完成初始化
*/
}
}

class staticTest{
static int num;
static {
String name = "1";
System.out.println(name);
}
staticTest(int num){
this.num = num;
System.out.println(num);
}
void f(int num){
this.num = num;
System.out.println(num);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java