shijian1111 2008-10-28 22:08
浏览 179
已采纳

【请教】一个关于static的问题

public class ToshibaTest {

    static private ToshibaTest tt=new ToshibaTest();

    static int count1;

    static int count2=0;

    ToshibaTest(){

        count1++;

        count2++;

    }

    static ToshibaTest getInstance(){

        return tt;

    }

    public static void main(String[] args){

        ToshibaTest tt=getInstance();

        System.out.println(tt.count1+":"+tt.count2);

    }

}

为什么输出是1:0?

  • 写回答

2条回答

  • zzxplayful 2008-10-28 22:08
    关注

    java初始化是有顺序的。
    先初始化静态变量,放到常量区。所以先执行
    static private ToshibaTest tt=new ToshibaTest();
    现在count1=1,count2=1
    然后,执行static int count1;static int count2=0;
    所以,输出是 1 和 0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?