在循环内创建对象

时间:2014-10-16 12:27:33

标签: java object for-loop

我在for循环中创建了一个Rectangle类,每次循环都会创建一个新的Rectangle对象。如果我的理解是正确的,那么每次创建一个新的Rectangle时,先前创建的Rectangle对象都是不可访问的(当前代码的编写方式),因为引用变量矩形现在指向最近创建的Rectangle对象。在每次循环创建新对象时,允许我们访问每个对象的最佳方法是什么?我知道一种方法是创建一个List并将每个新创建的Rectangle添加到列表中。

public class RectangleTest {

    public static void main(String[] args) {

        for (int i=1;i<5;i++){
            Rectangle rectangle = new Rectangle(2,2,i);
            System.out.println(rectangle.height);
        }
    }
}


public class Rectangle {

    int length;
    int width;
    int height;

    public Rectangle(int length,int width,int height){
        this.length = length;
        this.width = width;
        this.height = height;
    }

}

2 个答案:

答案 0 :(得分:2)

您需要将创建的引用存储在某个列表或数组中。

List<Rectangle> list = new ArrayList<>();

for (int i=1;i<5;i++){
        Rectangle rectangle = new Rectangle(2,2,i); 

        list.add(rectangle);

        System.out.println(rectangle.height);
    } 


System.out.println(list.get(0).height);

答案 1 :(得分:0)

您应该创建一个ArrayList或一个链接列表: