[英]Automatically selecting and creating class objects
让我们说我们有一个盒子类:
class Box
{
private int width;
private int height;
//Box Constructor
public Box( int height )
{
this.height = height;
width = 450;
}
}
和我们主要的一系列Box对象:
Box Box1 = new Box(147);
Box Box2 = new Box(178);
Box Box3 = new Box(784);
有没有办法使用“for”循环来浏览这些对象? 另外,您如何让计算机为我们创建类对象? 例如。 创建10个对象:
for( int i=0; i>10; i++)
{
//method
}
使用集合(或数组,但通常首选集合):
List<Box> boxes = new ArrayList<Box>(10);
for (int i = 0; i < 10; i++) {
boxes.add(new Box(i));
}
您可以将所有这些对象添加到数组(或)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
}
我想你的意思是
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);
您需要将对象组合在一个列表或数组中。 然后,您可以遍历数组以创建对象和/或使用它们。
Box[] boxes = new Box[10];
for (int i = 0; i < 10; i++)
{
boxes[i] = new Box(100); // Create a new box object
}
为了遍历先前创建的对象,对象必须位于某种类型的集合中。 可以使用for循环创建对象
for( int i=0; i<10; i++)
{
new Box(i);
}
如果您希望避免使用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);
}
您需要为创建的对象提供引用容器并将其添加到其中。 如果您需要不同的构造函数参数(如您的示例中所示),则需要一个容器:
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 ] ) ) ;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.