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