我试图了解数组中的对象的概念,&在书中(我正在学习)下面的代码作为例子给出。我很难理解它。
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<19)
{
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<1)
{
Mix4 m4 = new Mix4();
m4.counter = m4.counter+1;
return 1;
}
return 0;
}
}
以下是输出: -
20 1
另外,请解释数组中的对象如何表现?
答案 0 :(得分:1)
我想首先说这是编写得非常糟糕的代码,我不会因为混淆而责备你。 该程序首先创建一个Mix4对象数组。然后它有一个while循环。 while循环编写得很糟糕,因为目标是循环遍历数组的每个元素。但是如果你想改变数组中的对象数量,你还必须改变循环。更好的方法是:
for(int x =0; x< m4a.length -1; x++) {
//Code
}
然后循环将一个添加到Max4对象的计数器。然后是一个计数变量,每次迭代循环增加一个 然后它调用maybeNew方法。此方法接受输入,检查它是否小于零,如果是,则创建一个永远不会再次使用的Max4对象,递增新对象计数器变量,然后简单地返回1.如果它是一个或多个它只是返回0.(顺便说一下,一个方法应该只有一个return语句。)
while循环然后递增x,while循环将迭代20次。在while循环结束后,程序打印出循环递增的次数,然后打印出数组第一个索引中Max4对象的计数器。
关于对象在数组中的行为方式的问题,它们的行为就像它们不在数组中一样。就像整数行为一样,无论它们是否在数组中。数组只是一种数据结构,可以有效地处理对象。