我是java的初学者,我正在从Head First Java学习。在一个示例中,它给出以下代码并询问可能的输出(给定为:14 1)。 m4a [x] .counter做什么?我们从中获得了什么价值?谢谢。
public class Mix4{
int counter = 0;
public static void main(String args[]){
int count = 0;
Mix4 [] m4a = new Mix4[20];
int x = 0;
while (x < 9){
m4a[x] = new Mix4();
m4a[x].counter = m4a[x].counter+1;
count = count + 1;
count = count + m4a[x].maybeNew(x);
x = x + 1;
}
System.out.println(count + " " + m4a[1].counter);
}
public int maybeNew(int index){
if(index<5){
Mix4 m4 = new Mix4();
m4.counter = m4.counter + 1;
return 1;
}
return 0;
}
}
答案 0 :(得分:0)
我认为m4a[x].counter
除了每次都设置为1
之外什么都不做。在数组中创建新对象时:
m4a[x] = new Mix4();
counter
设置为0。
int counter = 0;
紧接下一行:
m4a[x].counter = m4a[x].counter+1;
只是将其设置为值“0 + 1”。
此数组中的前9个元素的counter
值为1,其他11个元素的初始值不会被初始化。
答案 1 :(得分:0)
看起来你有一个包含20个Mix4对象的数组,该数组被称为“m4a”。 m4a [x]是数组位置“x”的Mix4对象,m4a [x] .counter正在寻址该对象的“计数器”变量。
答案 2 :(得分:0)
m4a
是Mix4
类型的数组,x
是int。 ,因此m4a[x]
是由Mix4
编制索引的特定x
。
如果x
为0,则m4a[x]
是数组中的第0个Mix4
。如果x
为1,那么之后就是那个,依此类推。
现在,Mix4类有一个名为counter
的元素,可由variablethatisaMix4.counter
访问
因此
m4a[x].counter
或将其可视化:(m4a[x]).counter
是属于数组中counter
项的x
字段。
答案 3 :(得分:0)
您是否正确复制并通过了代码?这不是学习数组的简单方法!