2012-11-19 54 views
2

比方說,我們有一個框類:自動選擇和創建類對象

class Box 
{ 
    private int width; 
    private int height; 

    //Box Constructor 
    public Box(int height) 
    { 
     this.height = height; 
     width = 450; 
    } 

} 

,並在一系列框對象我們的主要:

Box Box1 = new Box(147); 
Box Box2 = new Box(178); 
Box Box3 = new Box(784); 

是否有使用「的方式爲「循環通過這些對象?另外,你將如何讓計算機爲我們創建類對象? 例如。創建10個對象使用:

for(int i=0; i>10; i++) 
{ 
    //method 
} 
+2

C++的標籤是不相關的。 – chris

+0

選擇一種語言並學習使用它提供的容器。 – undu

+0

C++標記已被刪除。 –

回答

5

使用集合(或數組,但集合應該是一般優先):

List<Box> boxes = new ArrayList<Box>(10); 
for (int i = 0; i < 10; i++) { 
    boxes.add(new Box(i)); 
} 
+0

你的意思是'新盒子(i)'? –

+0

當然可以。我會解決這個問題。 –

+0

List <>對我來說是新鮮事物。我會仔細看看的。感謝您的建議! –

3

您可以將所有這些對象添加到數組(或)arraylist並循環它。

例子:

List<Box> boxList = new ArrayList<Box>(); 
boxList.add(box1); 
boxList.add(box2); 
boxList.add(box3); 

for(int i=0; i < boxList.size(); i++) 
{ 
    //method 
} 
3

我想你的意思

for(int i=0; i<10; i++) 

,並在Java中你會做

Box[] boxes = new Box[10]; 
for(int i=0; i<10; i++) boxes[i] = new Box(i); 
1

爲了遍歷先前創建的對象,對象必須位於某種集合中。這是可能的for循環

for(int i=0; i<10; i++) 
{ 
    new Box(i); 
} 
2

您需要將組中的對象一起在一個列表或數組創建使用對象。然後您可以遍歷數組來創建對象和/或使用它們。

Box[] boxes = new Box[10]; 
for (int i = 0; i < 10; i++) 
{ 
    boxes[i] = new Box(100); // Create a new box object 
} 
0

您需要創建對象的引用容器並將它們添加到其中。如果你需要不同的構造函數的參數(如你的例子),你需要一個容器,對他們說:

Integer[] boxSpecifications = new Integer[] { 10, 187, 781, 321 }; 
List<Box> boxes = new ArrayList<Box>(); 

for (int i = 0; i < boxSpecifications.length; i++) { 
    boxes.add(new Box(boxSpecifications[ i ])) ; 
} 
1

如果你希望避免的內存和一個ArrayList的處理開銷,但使用一個普通的數組來代替。

非迭代創建

比方說,我們知道項目的數量。這裏

Box[] boxes = { 
    new Box(1), 
    new Box(2), 
    new Box(3) 
}; 

迭代創建

Box[] boxes = new Box[numBoxes]; 
for (int i=0; i<numBoxes; i++){ 
    boxes[i] = new Box(i); 
} 

迭代訪問

for (Box b : boxes){ 
    doWhatever(b); 
}