本帖最后由 不可言 于 2014-6-16 13:14 编辑
- int[] iArr = {1,2,3};
- for(int x : iArr)
- x = 4;
- //输出结果是123,说明在for-each里面改变的值对于原数组类型不影响
- for(int x : iArr)
- System.out.println(x);
-
复制代码
下面使用一个Person类型的数组,并改变Person中age的值- class Person
- {
- String name;
- int age;
- Person(String n, int a){
- name = n;
- age = a;
- }
- public String toString(){
- return name+":"+age;
- }
- }
复制代码- //定义一个Person类型的数组
- Person[] pArr = new Person[3];
- pArr[0] = new Person("1",1);
- pArr[1] = new Person("2",2);
- pArr[2] = new Person("3",3);
- for(Person p : pArr) //改变其对象引用的值
- p.age = 4;
-
- for(int x = 0;x<3;x++) //输出结果就变成了 1:4 2:4 3:4
- System.out.print(pArr[x]+"\t");
复制代码
为什么一样是引用类型,数组中的值在forerch中不会改变? |