KING654 2019-09-14 22:51 采纳率: 0%
浏览 94

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();
}
}
输出结果是什么

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-09-15 09:40
    关注

    输出结果
    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/

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料