初学JAVA,在"初使化"方面有如下问题:
class abc {
abc(int mark) { System.out.println("abc" + mark);}
}
public class func {
public static void main(String [] argv) {
System.out.println("func");
}
abc a1=new abc(1);
abc a2=new abc(2);
}
据JAVA编程思想书里的介绍:初始化必须在类的任一函数被调用之前进行。 据此:上题就应该先执行两个构造函数。。。但实际结果是先执行主函数。 为什么?
还不明显吗?
static是现于main()执行的。
static void main(){}
执行的时候根本没有实例一个类.
这是静态方法...
func类还没有生成对象,里面的数据成员当然就没有机会被初始化了。
这样就好了。
class abc {
abc(int mark) { System.out.println("abc" + mark);}
}
public class Test{
public static void main(String [] argv) {
new Test();
System.out.println("main");
}
abc a1=new abc(1);
abc a2=new abc(2);
}