初学者测试
昨天自考考了《java程序语言设计》,有点不太记得类的初始化过程了,顺便复习了一下。
同样准备了测试题一枚。把自己的email分散到输出中,如果正确输出,说明分析正确了。
不行怎么行,这是基础。下面程序请先分析,如果结果(用白色字体是输出结果)正确,说明您对java类的初始化已经很熟悉,算是过关,如果没有,那赶紧复习吧。
package nie.test.extend; /** 子构造子的初始化过程: * @author dotjar * 1.父static域 * 2.父static块 * 3.子static域 * 4.子static块 * 5.父普通域 * 6.父普通块{} * 7.父构造子 * 8.子普通域 * 9.子普通块{} * 10.子构造子 */ public class Test { public static void main(String[] args) { new Son("s"); } } class Father { static protected String s = "father_static_property_string"; //1 protected String b = "father_normal_property_string"; //5 static { s = "o"; //2 System.out.print("d"); System.out.print(s); } { b="r"; //6 System.out.print("a"); System.out.print(b); } Father() { this("@"); System.out.print("1"); //8 } Father(String s) { System.out.print(s); //7 } } class Son extends Father { public static String s = "son_static_property_string"; //3 public String b = "son_normal_property_string"; //9 static { s = "j"; //4 System.out.print("t"); System.out.print(s); } { b = "3"; //10 System.out.print("6"); System.out.print(b); } Son() { System.out.print("."); //11 } Son(String s) { this(); System.out.print("com"); //12 } }
测试完自己的输出,可以用鼠标选中下一行,检查。
这里:dotjar@163.com