如何循环以继续创建类的新对象实例?

时间:2017-08-09 16:11:58

标签: java loops object

while (x < 6) {
    x = x-1;
    Dog kfl = new Dog();
}

此循环是否会创建6个新的不同对象,并将它们分配给引用变量kfl或...?

3 个答案:

答案 0 :(得分:1)

这取决于x是多少。同样,以您设置循环的方式,如果x开始于小于6,则循环将无限运行;如果x开始于6或更高,则循环将不执行。

假设int x = 0;

while (x < 6) {
    x = x-1;

应替换为

int x = 6;
while (x > 0) {
    x--;

int x = 0;
while (x < 6) {
    x++;

在定义实例kfl时,您正在 创建新对象,但是它们都分配给了相同的变量,因此您要重写它们。 如果要为实例分配相似的变量,一个好的方法是将它们分配给数组,并为数组的每个元素定义一个新实例。例如,

Dog dogs[] = new Array[5]; // Sets array to 5 elements total

for (int i = 0; i < dogs.length; i++) {
    dogs[i] = new Dog();
}

此处使用循环而不是使用while循环的原因是,for循环用于迭代。 while循环旨在用作连续条件-类似于if语句,只是不断重复。因此,当您不知道一个代码块应该迭代多少次时,可以使用while循环;而当您知道多少次时,可以使用for循环。

答案 1 :(得分:-1)

对象的创建取决于x的值。如果x的值小于6,则它将创建无限数量的对象。在另一种情况下,如果x的值大于6,则将不会执行循环,因此对象数将为0。

答案 2 :(得分:-2)

它将创建大约5 + Integer.MIN_VALUEDog个对象。在每次迭代之后,它们之前的对象将有资格被垃圾收集。在while循环之后,将不再引用所有Dog对象,因为它将超出范围。

这意味着最终您将不会引用任何已创建的Dog对象。

编辑:我将x视为x=5。因为必须< 6来满足while约束。