首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

新手

2012-03-25 
新手求助。public abstract class go8 {abstract void a()go8() {System.out.println(yiqian)a()Syste

新手求助。
public abstract class go8 {
abstract void a();

go8() {
System.out.println("yiqian");
a();
System.out.println("yihou");
}

public static void main(String[] args) {
new go9();
}
}

class go9 extends go8 {
private int i = 1;

void a() {
System.out.println("a()" + i);//这里的i为什么输出的是0?
}

go9() {
System.out.println(i);
}
}


[解决办法]
看看类加载过程吧
http://java.sun.com/docs/books/jls/second_edition/html/execution.doc.html#44459
new go9()的执行顺序
1.0-->1.1-->1.2-->2.0-->2.1-->3.0-->4.0-->4.1-->5.0

Java code
public abstract class go8 {    abstract void a();    go8() {            //1.2        System.out.println("yiqian");//2.0        a();            //2.1        System.out.println("yihou");//4.0    }    public static void main(String[] args) {        new go9();    }}class go9 extends go8 {    private int i = 1;        //1.0初始化i为0   ;4.1 初始化i为1    void a() {                System.out.println("a()" + i);//    }    go9() {        //1.1        System.out.println(i);            //5.0    }} 

热点排行