本帖最后由 w092640 于 2012-04-09 21:02:53 编辑

解决方案 »

  1.   


    哦,不好意思,忘记写了,Myclass里面只有一个构造方法,功能是打印输出传来的值。
      

  2.   

    补充Myclass类,大致是这样的:
    Myclass{
        Myclass(i){
          System.out.println(“i”);
        }
    }
      

  3.   

    执行顺序:
    静态变量,静态初始化块(static{}谁在前面就先执行)
    变量,初始化块({} 谁在前面就先执行)
    构造器
      

  4.   


    是原题的,我是没看明白
    缺的Myclass类里面有个构造函数打印输出传来的值。
      

  5.   

    貌似考了很多东西,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);
      }
    }
      

  6.   

    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