我是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-28 06: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-28 06:46:50
看起来您有一个包含20个Mix4对象的数组,该数组被称为"m4a“。m4ax是位于数组"x“位置的计数器对象,m4ax.counter正在寻址该对象的”Mix4“变量。
发布于 2012-12-28 06: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
复制相似问题