java编程思想里面Reusing Classes例题23输出是什么。

代码如下
import static org.greggordon.tools.Print.*;

class A {
static int j = printInit("A.j initialized");
static int printInit(String s) {
println(s);
return 1;
}
A() { println("A() constructor"); }
}

class B extends A {
static int k = printInit("B.k initialized");
B() { println("B() constructor"); }
}

class C {
static int n = printInitC("C.n initialized");
static A a = new A();
C() { println("C() constructor"); }
static int printInitC(String s) {
println(s);
return 1;
}
}

class D {
D() { println("D() constructor"); }
}

public class LoadClass extends B {
static int i = printInit("LoadClass.i initialized");
LoadClass() { println("LoadClass() constructor"); }
public static void main(String[] args) {
// accessing static main causes loading (and initialization)
// of A, B, & LoadClass
println("hi");
// call constructors from loaded classes:
LoadClass lc = new LoadClass();
// call to static field loads & initializes C:
println(C.a);
// call to constructor loads D:
D d = new D();
}
}
输出结果是什么

输出结果
A.j initialized
B.k initialized
LoadClass.i initialized
hi
A() constructor
B() constructor
LoadClass() constructor
C.n initialized
A() constructor
A@7471c619
D() constructor

你的代码有一些简略,我恢复为可运行版本

import java.io.*;
class A {
static int j = printInit("A.j initialized");
static int printInit(String s) {
System.out.println(s);
return 1;
}
A() { System.out.println("A() constructor"); }
}

class B extends A {
static int k = printInit("B.k initialized");
B() { System.out.println("B() constructor"); }
}

class C {
static int n = printInitC("C.n initialized");
static A a = new A();
C() { System.out.println("C() constructor"); }
static int printInitC(String s) {
System.out.println(s);
return 1;
}
}

class D {
D() { System.out.println("D() constructor"); }
}

class LoadClass extends B {
static int i = printInit("LoadClass.i initialized");
LoadClass() { System.out.println("LoadClass() constructor"); }
public static void main(String[] args) {
// accessing static main causes loading (and initialization)
// of A, B, & LoadClass
System.out.println("hi");
// call constructors from loaded classes:
LoadClass lc = new LoadClass();
// call to static field loads & initializes C:
System.out.println(C.a);
// call to constructor loads D:
D d = new D();
}
}

在线运行:http://www.dooccn.com/java1.7/