1 public class ClassA {
 2 
 3     private int field;
 4 
 5     ClassA() {
 6 
 7     }
 8 
 9     ClassA(int field) {
10         // ClassA(); // 这样写是否合法?
11         this.field = field;
12     }
13 
14     /**
15      * @param args
16      */
17     public static void main(String[] args) {
18         ClassA ca = new ClassA(2);
19         ca.display(); // 如果编译成功,运行将输入出什么?
20     }
21 
22     public void display() {
23         // 下面的写法是否合法?
24         switch (field) {
25         default:
26             System.out.println("default");
27             break;
28         case 1:
29             System.out.println("print 1");
30         case 2:
31             System.out.println("print 2");
32         case 3:
33             System.out.println("print 3");
34         }
35     }
36 }

本人菜鸟,一开始看到这道题的时候琢磨了好一会,因为实际项目开发中,确实没尝试过这样的写法,然后直接填了两个编译错误就完事了,面试官看了后也没说什么,还以为对了,好在题还记得,回家敲了下。

结果:

  ClassA(); // 将出现编译错误

  能够编译并且将输出:print 2  print3

posted on 2014-03-17 16:49  akanairen  阅读(317)  评论(0编辑  收藏  举报