貌似考了很多东西,final,static,动态语句块,陷阱还贼多,我只能说楼主辛苦了。面试官没事找抽型的。这个可以完全执行的。public class Test{ // private static final Myclass object1;编译不通过,必须赋初值,或者在静态语句块中赋值。 private static final Myclass object2=new Myclass("2"); private final Myclass object3;//这个finally不是很清楚 static{ object1 = new Myclass("1"); Myclass object4 = new Myclass("4");//要加Myclass } public Test(){ Myclass object3 = new Myclass("5");//要加Myclass } { object3 = new Myclass("3");//如果注掉这句,构造方法会报错。放在构造方法也可。 Myclass object6 = new Myclass("6");//要加Myclass } public static void main(String args[]){ new Test(); } } class Myclass{ Myclass(String i){ System.out.println(i); } }
class Myclass{ Myclass(int i){ System.out.println(i); } } public class Test{ //private static final Myclass object1;//这行必须给出初始值 因为有final否则编译失败 private static final Myclass object2=new Myclass(2); //private final Myclass object3;//同上
static{ Myclass object4=new Myclass(4); } public Test(){ Myclass object5= new Myclass(5); } { Myclass object6=new Myclass(6); } public static void main(String args[]){ new Test(); } } 如果把那两条注释掉则输出为2 4 6 5
哦,不好意思,忘记写了,Myclass里面只有一个构造方法,功能是打印输出传来的值。
Myclass{
Myclass(i){
System.out.println(“i”);
}
}
静态变量,静态初始化块(static{}谁在前面就先执行)
变量,初始化块({} 谁在前面就先执行)
构造器
是原题的,我是没看明白
缺的Myclass类里面有个构造函数打印输出传来的值。
// private static final Myclass object1;编译不通过,必须赋初值,或者在静态语句块中赋值。
private static final Myclass object2=new Myclass("2");
private final Myclass object3;//这个finally不是很清楚
static{
object1 = new Myclass("1");
Myclass object4 = new Myclass("4");//要加Myclass
} public Test(){
Myclass object3 = new Myclass("5");//要加Myclass
} {
object3 = new Myclass("3");//如果注掉这句,构造方法会报错。放在构造方法也可。
Myclass object6 = new Myclass("6");//要加Myclass
} public static void main(String args[]){
new Test();
}
}
class Myclass{
Myclass(String i){
System.out.println(i);
}
}
Myclass(int i){
System.out.println(i);
}
}
public class Test{
//private static final Myclass object1;//这行必须给出初始值 因为有final否则编译失败
private static final Myclass object2=new Myclass(2);
//private final Myclass object3;//同上
static{
Myclass object4=new Myclass(4);
} public Test(){
Myclass object5= new Myclass(5);
} {
Myclass object6=new Myclass(6);
} public static void main(String args[]){
new Test();
}
}
如果把那两条注释掉则输出为2 4 6 5