物件陣列與普通陣列的區別
阿新 • • 發佈:2019-02-09
public static void main(){
int[] ia = new int[10];
//在這個陣列建立的時候,陣列中元素都是0
//此時System.out.println(ia[0]+2);輸出的是2
String b;
//此時b是String型別的物件,而該物件管理的是一個字串
//因此System.out.println(b);會得到null
String[] a = new String[10];
//在陣列建立的時候,陣列中元素事實上是字串的管理者(字串指標)
//在此時System.out.println(a[0]);會輸出的是null
//System.out.println(a[0]+"a");會出現異常
//物件陣列和基礎陣列的差別見上,ia是普通陣列,裡面是就是每個元素,而a陣列剛建立的時候裡面是每個物件的管理者。
}
for-each迴圈下的體現
class Value{
private int i;
public void set(int i) { this.i = i;}
public int get() { return i; }
}
public static void main(){
Value[] a= new Value[10];
for(int i=0;i<a.length;i++){
a[i]=new Value();
a[i].set(i);
}
for(Value v:a){
System.out.println(v.get());//得到輸出結果0到9
}
for(Value v:a){
v.set(0);
}
for(Value v:a){
System.out.println(v.get ());//得到輸出結果全部是0
}
}
另外對於容器類的for-each迴圈也是可以用的
ArrayList<String> a=new ArrayList<String>();
a.add("first");
a.add("second");
for(String s : a){
System.out.println(s);//輸出的就是first和second
}