对象数组和对象数组的for-each循环
对象数组
int[] ints = new int[10]; String[] s = new String[10]; System.out.println(ints[0]); System.out.println(s[0]);

没有报错但是输出String的是一个空
System.out.println(s[0].length());
我们获取他的这个长度就会报错

这个就好如一个一个的管理者而现在是谁也没有管,所有为空,就要给他赋值
for (int i = 0; i <s.length; i++) {
s[i] = ""+i;
}

a[0]放的是0这个数字所以长度就有了为1
在对象数组里面如果这个数组的类型,基础类型,元素类型是类的话,在这个数组里面,
每一个单元并不是那个类的对象而是一个对象的管理者
对象数组中的每个元素都是对象的管理者而非对象本身
for-each
for (int s : ints){
System.out.println(s);
}
这个是一个for-each遍历数组,在这个循环里面的++是不起任何的作用的
class wula{
private int i;
public void set(int i){
this.i=i;
}
public int get(){
return i;
}
}
wula[] wu= new wula[5];
for (int i = 0; i <wu.length; i++) {
wu[i] = new wula();
wu[i].set(i);
}
for (wula w : wu){
System.out.println(w.get());
w.set(0);
}
for (wula w : wu){
System.out.println(w.get());
}

第一遍输出的是0-5而第二遍我们做了个set为0在遍历的时候是0了
在wu这个数组里面每一个单元都指向了外部的那个,循环的第一轮进行设置了0循环到1的时候set0那个1就变成了0
for-each循环对应对象数组是不一样的,在循环的每一轮他是可以拿到的

浙公网安备 33010602011771号