java - 如果要在循环中创建一个对象,它会在每次迭代中不断重新创建该循环吗?

标签 java loops object

while(!input.equals("-1")){

    plantName = "";
    plantCost = "";
    colorOfFlowers = "";
    isAnnual = false;

    if (input.charAt(0) == 'p') {
        Plant plant = new Plant();
        String[] temp = input.split(" ");
        plantName = temp[1];
        plantCost = temp[2];
        plant.setPlantName(plantName);
        plant.setPlantCost(plantCost);
        myGarden.add(plant);

     }else {
         Flower flower = new Flower();
         String[] temp = input.split(" ");
         flower.setPlantName(temp[1]);
         flower.setPlantCost(temp[2]);

        flower.setPlantType(Boolean.parseBoolean(temp[3]));
         flower.setColorOfFlowers(temp[4]);
         myGarden.add(flower);

     }
     input = scnr.nextLine();
 }

这是一个例子来说明我的意思。在 if 语句的开头,我创建了一个工厂对象,它最终使程序按照我想要的方式工作,我只是不太确定它为什么工作。我的想法是,通过在 while 循环内创建对象,它会在循环结束时“删除”并创建一个新对象。

尽管我不确定,因为每次我向教授询问有关任何概念的问题时,他都会告诉我到这里来问别人。 提前致谢。

最佳答案

您正在保存一个副本,以便旧对象被覆盖。

Object[] a = new Object[10];

for (int i = 0; i < 10; i++) {
    // ob gets copied over with the new object
    Object ob = new Object();
    // but it is saved here
    a[i] = ob;
}

和这个没有什么不同。

int[] n = new int[10];
for (int i = 0; i < 10; j++) {
    int x = i*10;
    n[i] = x; // x is saved in array.
}

关于java - 如果要在循环中创建一个对象,它会在每次迭代中不断重新创建该循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61691317/

相关文章:

java 。根据时区名称将 EDT、CDT、CST 等时区中的时间转换为 UTC

java - Java 中使用 BoofCV 进行小波变换(Haar 或 Daubechies)

MySQL在临时表中创建任意日期或数字列表?

javascript - 嵌套对象解构

javascript - 如何在javascript中访问 "this"对象?

java - 变长泛型类型

java - 为我的 API 的每个用户创建一个线程是否可以很好地扩展?

javascript - 达到25个唯一div的末尾后,再加载5个div。 5行,每行5格

python - 查找嵌套列表中具有最大第二个元素的元素

javascript - 如何在构造函数中创建一个 JS 对象并将 "parent object"作为构造函数参数?