SCJP 1.6版考題 077

出自 陳富國維基館
於 2013年3月30日 (六) 06:16 由 Ikk (對話 | 貢獻) 所做的修訂 (新頁面: 11. public static void main(String[] args) { 12. Object obj = new int{1, 2, 3}; 13. int[] someArray = (int[])obj; 14. for (int i: someArray) System.out.print(i + " "); 15. }...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
前往: 導覽搜尋
11. public static void main(String[] args) {
12.   Object obj = new int{1, 2, 3};
13.   int[] someArray = (int[])obj;
14.   for (int i: someArray) System.out.print(i + " ");
15. }


What is the result?
  A. 1 2 3
  B. Compilation fails because of an error in line 12.
  C. Compilation fails because of an error in line 13.
  D. Compilation fails because of an error in line 14.
  E. A ClassCastException is thrown at runtime.

解答


Ans: A

解說:

此題正常編譯可執行,第12行先用一個父類別型態Object的物件參考指向一個一維的整數陣列
Everything is an object, 這句話代表只要是Object型態的物件參考,就可以指向系統中任一型態的物件,如此題中的obj。
13行,等號的右邊是Object型態的物件參考,等號右邊是父類別(大),指定給子類別時須進行轉型的動作,
     可進行轉型的基礎是obj所指的物件型態必須是int[]。