我是Java的初学者,我正在从Head First java开始学习。在一个示例中,它给出了以下代码并询问可能的输出(给出:141)。m4ax.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;
}
}
发布于 2012-12-27 22:46:07
在我看来,除了每次都设置为1
之外,m4a[x].counter
不会做任何事情。在数组中创建新对象时:
m4a[x] = new Mix4();
counter
设置为0。
int counter = 0;
所以紧随其后的一行:
m4a[x].counter = m4a[x].counter+1;
简单地将其设置为值"0 + 1“。
此数组中的前9个元素的counter
值为1,其他11个元素尚未初始化。
发布于 2012-12-27 22:46:50
看起来您有一个包含20个Mix4对象的数组,该数组被称为"m4a“。m4ax是位于数组"x“位置的计数器对象,m4ax.counter正在寻址该对象的”Mix4“变量。
发布于 2012-12-27 22:48:07
m4a
是一个Mix4
类型的数组,而x
是一个整数。,所以m4a[x]
是由x
索引的特定Mix4
。
如果x
为0,则m4a[x]
是数组中的第0个Mix4
。如果x
是1,那么它就是后面的1,依此类推。
现在,Mix4类有一个可由variablethatisaMix4.counter
访问的名为counter
的元素
因此
m4a[x].counter
或将其可视化:(m4a[x]).counter
是属于数组中第x
项的counter
字段。
https://stackoverflow.com/questions/14062224
复制相似问题