好的,我有一个名为Dog()的类,它有两个参数,一个字符串和一个整数 这个类有一个名为bark()的方法,它根据传递给Dog()构造函数的整数打印一个字符串。
我还有一个名为Kennel()的类,它创建了一个包含5个Dog()的数组......看起来像这样:
public class Kennel
{
Dog[] kennel = new Dog[5];
public Kennel()
{
kennel[0] = new Dog("Harold",1);
kennel[1] = new Dog("Arnold",2);
kennel[2] = new Dog("Fido",3);
kennel[3] = new Dog("Spot",4);
kennel[4] = new Dog("Rover",5);
}
}
首先,这有效,但似乎错了。为什么我要从Dog [] ......新狗[5]开始?也许是愚蠢的问题......我是新手。
无论如何......我被要求做的是使用“enhanced”for循环来遍历调用bark()的数组。
因此,对于传统的for循环,它看起来像这样:
for (i=0;i<kennel.length;i++)
{
kennel[i].bark();
}
简单的东西,对吗?但是如何使用for(type item:array)语法实现这一点?
答案 0 :(得分:20)
只需在每个
中使用它for(Dog d : kennel) {
d.bark();
}
答案 1 :(得分:10)
以下是使用增强型for循环的方法。
for(Dog dog : kennel) {
dog.bark();
}
对于您的其他问题,如果您要使用数组,则必须在开始向其添加元素之前声明大小。但是,如果您在同一行中进行初始化和声明,则有一个例外。例如:
Dog[] dogs = {new Dog("Harold", 1), new Dog("Arnold", 2)};
答案 2 :(得分:0)
关于你的第二个问题:“为什么我必须从Dog [] ...新狗[5]开始?”
因为你必须提出相同的逻辑 狗狗=新狗(); ----(1) 这就是为什么Dog [] dogArray = new Dog [5]; ---(2)
如果你对第一个问题没有问题,那么为什么要选择第二个问题。