我有2节课。第一个描述了一个项目,秒是围绕第一个类的项目数组构建的。
我了解到只创建一个对象数组并不能初始化它们。所以我在第二个类的构造函数中放了一个for循环来初始化所有项目。 然而,当进入clear()函数时,列表数组的所有元素仍然为null。那是为什么?
class HneAnalogItem {
String description;
String unit;
float value;
HneAnalogItem(){}
}
class HneAnalogInfo
{
static final private int MAXANALOGINFOITEMS = 100;
private HneAnalogItem[] list;
HneAnalogInfo() {
list = new HneAnalogItem[MAXANALOGINFOITEMS];
for(HneAnalogItem item : list) {
item = new HneAnalogItem();
}
clear();
}
void clear() {
for(HneAnalogItem item : list) {
item.description = "";
item.unit = "";
item.value = 0;
}
}
}
答案 0 :(得分:4)
for (HneAnalogItem item : list) {
item = new HneAnalogItem();
}
这个增强的for循环不会初始化数组元素。它相当于:
for (int i = 0; i < list.length; list++) {
HneAnalogItem item = list[i];
item = new HneAnalogItem();
}
初始化所需的数组元素:
for (int i = 0; i < list.length; list++) {
list[i] = new HneAnalogItem();
}