学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

static 有这么麻烦吗?(已解决)

static 有这么麻烦吗?(已解决)

class Explicit{
    Test3 a=new Test3();//这里怎么会比构造函数先执行,还有这一句也没有在main()里怎么就可以被执行了呢
                                        //这里是不是被默认成static语句了啊
    Explicit(){
        System.out.println("Explicit");
    }
}
class Test3{
    Test3(){
        System.out.println("Test3");
    }
}
class Test{
    public static void main(String[] args){
        Explicit e=new Explicit();
    }
}

[ 本帖最后由 he20041987 于 2008-4-15 11:58 编辑 ]

TOP

public class a {

    int i = 0;  

    public a() {

        i++;
        System.out.println("" + i);
    }

    public static void main(String []args) {

        new a();
    }
}

成员变量也是先执行的...........

如果不是从成员变量执行的话,会出现异常

TOP

哦那么说java是先执行static语句块,再执行成员变量,最后才执行main().

TOP

class Explicit{
   
    static  Test3 b=new Test3();                                 
    Explicit(){
        System.out.println("Explicit");
    }
    Test3 a=new Test3();
}
class Test3{
    Test3(){
        System.out.println("Test31");
    }
    public String toString()
    {
        return getClass().getName();
        }
}
class Test{
    public static void main(String[] args){
        Explicit e=new Explicit();
        System.out.println(Explicit.b);
    }
}
学习需要安静。。海盗要重新来过。。

TOP

可以这样看建立对象的前提,就是把对象中可能要建立的都建好,在建立对象自己,不用关键字定义的都不是静态得..
学习需要安静。。海盗要重新来过。。

TOP

差不多了解了,谢谢两位了!

TOP

正确的顺序是
执行静态初始化(包括static块)
字段默认初始化
字段初始化
构造器
Fight  to win  or  die...

TOP

发新话题