如何从类构造器创建数组?

时间:2015-12-01 17:03:03

标签: java arrays class processing

所以基本上我有一个课程,我的程序,它正在为我的动画构建雨元素。我想知道如何使用数组从这个类创建50个对象,但同时交替对象中的数据。

 void setup()
  {
   size (400,400);
   noStroke();
   rain = new Rain(20,random(0,10),3,15);
   rain2 = new Rain(random(15,35), random(70,110),3,15);

  }
 void draw()
  {
   background(0);
   rain.colour(125,155,100);
   rain.display();
   rain2.colour(125,155,100);
   rain2.display();
  }

这就是我用来制造2个雨滴的方法;正如我所说,如何让数组创建多个对象但是在构造函数中随机化数据?

这是构造函数引起你的疑惑,是的,我对类和java本身很新。

3 个答案:

答案 0 :(得分:1)

使用其构造函数时,可以创建类的实例。您可以将实例存储在数组中。

所以你真的遇到了两个问题:创建50个类的实例,并将这些实例添加到数组中。

您可以使用 for循环解决第一个问题,并使用数组解决第二个问题:

Rain[] rainDrops = new Rain[50];
for(int i = 0; i < 50; i ++){
   Rain rain = new Rain(random(100), random(100),3,15);
   rainDrops[i] = rain;
}

请注意,您可能会将传递的值基于循环变量 random()上的i函数,具体取决于您想要发生的事情。

然后,您可以循环遍历该数组以绘制数组中的每个实例:

for(Rain r : rainDrops){
  r.display();
}

如果您不想提前指定实例数,也可以使用 ArrayList

the Processing reference中的更多信息:

无耻的自我推销:我已经在可用的处理herehere中编写了有关使用数组和对象的教程。

答案 1 :(得分:0)

50个对象:

Rain obj[]=new Rain[50];

void setup() {

循环迭代:for(int i; ...):exercise

构造

public class Rain {
    public Rain(int a, int b, int c, int d)
    {
    // Do your random ... : exercice

    }

画出:

void draw()
{
// iterate : exercice

答案 2 :(得分:0)

创建一个arraylist,然后使用随机生成的Rain对象填充列表。之后,遍历arraylist进行着色并显示它们。

ArrayList<Rain> rainObjects;

void setup()
{
    size (400,400);
    noStroke();
    rainObjects = new ArrayList<Rain>();
    for (int i=0; i<numberOfRainObjectsYouWant; i++)
    {
        // Create Rain object with random parameters
        Rain rain = new Rain(/* Random parameters using the random() method */);
        rainObjects.add(rain);
    }
}

void draw()
{
    background(0);
    for (Rain rain : rainObjects)
    {
        rain.colour(125,155,100);
        rain.display();
    }
}