Given the code fragment:
public class Test {
public static void main(String[] args) {
/* insert code here */
array[0] = 10;
array[1] = 20;
System.out.print(array[0] + ":" + array[1]);
}
}
Which code fragment, when inserted at line 3, enables the code to print 10:20?
A.
int[] array = new int[2];
B.
int[] array;
array = int[2];
C.
int array = new int[2];
D.
int array [2] ;
題解
題目有使用到「array」這個變數,從第4行到第6行可以看出「array」是一個陣列。原先的程式中「array」並沒有先被宣告出來,也沒有實體化任何的陣列物件給「array」變數。
選項A是正確的。宣告「array」變數,並實體化出一個長度為2的整數陣列物件。
選項B是把選項A拆成兩行,但少了new運算子來實體化出整數陣列物件,編譯錯誤。
選項C將「array」宣告成整數基本型態,又實體化出一個長度為2的整數陣列物件指派給「array」整數變數儲存,型態不對造成編譯錯誤。
選項D比較像是C語言宣告陣列於堆疊(stack)空間的方式,在Java語言中是錯誤的用法,會造成編譯錯誤。