import java.util.ArrayList;
/**
* 1、分析运行结果,说明原理。(没有分析结果不得分)
*
* 分析:运行结果为:三个102
* 1:一个Data类,成员变量为val,数据类型为int
* 2:在main主方法中,Data data = new Data(),创建了一个Data类的对象data;
* ArrayList<Data> list = new ArrayList<Data>(),创建了一个集合ArrayList类的对象list,其泛型为Data;
* 在for循环中 data.val = i对Data的成员变量val进行赋值,一共循环3次,i=100,101,102,
* list.add(data),向list集合中添加data对象,因为只new了一次对象,所以添加的三个data对象是同一个
* 对象;for (Data d : list):利用增强for循环对list进行遍历;向控制台输出data.val,因为在for循环
* 中对成员变量赋值3次,最后一次赋值data.val = 102,所以成员变量val的值为102;最后输出为3个102
*/
class Data {
int val;
@Override
public String toString() {
return "Data [val=" + val + "]";
}
}
public class Test01 {
/**
* @param args
*/
public static void main(String args[]) {
Data data = new Data();
ArrayList<Data> list = new ArrayList<Data>();
for (int i = 100; i < 103; i++) {
data.val = i;
list.add(data);
}
for (Data d : list) {
System.out.println(data.val);
}
}
}
|
|