1

我是 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;
}

}

4

4 回答 4

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 个元素尚未初始化。

于 2012-12-27T22:46:07.293 回答
0

看起来您有一个包含 20 个 Mix4 对象的数组,该数组称为“m4a”。m4a[x] 是数组“x”位置的 Mix4 对象,m4a[x].counter 正在寻址该对象的“counter”变量。

于 2012-12-27T22:46:50.220 回答
0

m4a是一个类型的数组Mix4并且x是一个 int。,由 索引m4a[x]的特定项也是如此。Mix4x

如果x为 0,则表示数组中m4a[x]的第零个。Mix4如果x为 1,则为之后的那个,依此类推。

现在 Mix4 类有一个名为的元素counter,可以通过variablethatisaMix4.counter

所以

m4a[x].counter或将其可视化: (m4a[x]).countercounter属于x数组中第 th 项的字段。

于 2012-12-27T22:48:06.833 回答
0

您是否正确复制并粘贴了代码?这不是学习数组的简单方法!

于 2012-12-28T00:02:17.627 回答