【发布时间】:2014-10-14 01:57:23
【问题描述】:
我编写了一个测试程序,因为我在使用 PL/SQL 之后尝试重新回到 Java。我创建了一个包含整数、getter 和 setter 的类 Numbers。我有另一个类 Test 正在创建 Numbers 的实例,并将该实例添加到 List 中。我创建了一个循环两次并将 Numbers 中整数的值设置为 i 的 for 循环。然后我将该 Numbers 实例添加到 List numbersList。然后我打印添加到列表中的值的屏幕。我总共打印了 3 次,第一次通过循环打印列表中的第一个位置,然后我在第二次通过循环打印两次,再次在列表中的第一个位置,第二个位置在列表中。我期望得到 0,0,1 作为结果。结果我得到了 0,1,1,但我不知道为什么。在第二次循环期间,我没有更改列表中第一个位置(numbersList[0])的任何内容,我所做的只是将 Numbers 的一个实例添加到列表中的第二个位置(numbersList[1])。
import java.util.ArrayList;
import java.util.List;
public class Tests {
static int x;
public static void main(String[] args) {
List<Numbers> numbersList = new ArrayList<Numbers>();
Numbers numbers = new Numbers();
Numbers numbers2 = new Numbers();
for (int i = 0; i < 2; i++) {
if (i == 0) {
numbers.setVariable(i);
numbersList.add(numbers);
System.out.println(numbersList.get(0).getVariable());
}
if (i > 0) {
numbers2.setVariable(i);
numbersList.add(numbers2);
System.out.println(numbersList.get(0).getVariable());
System.out.println(numbersList.get(1).getVariable());
}
}
}
}
public class Numbers {
public static int a = 5;
public static void setVariable(int b) {
a = b;
}
public static int getVariable() {
return a;
}
}
【问题讨论】:
标签: java arrays object arraylist