如何声明一个2d数组来保存来自多个类的对象

时间:2013-05-31 08:44:38

标签: arrays object 2d processing

我已经声明了一个存储Square类型对象的数组,如下所示:

Square[][] square_array = new Square[15][15];

我还有一个名为Ball的课程。

是否可以在square_array中存储Ball对象?如果是这样,我将如何做到这一点?

干杯

2 个答案:

答案 0 :(得分:0)

也许制作一个对象类,并使用方形和球来扩展它,而不是你可以创建一个可以包含两者的对象数组......虽然继承接缝是老式的...

Sq sq = new Sq();
Ba ba = new Ba();
Ob[] sqAndBa = new Ob[2];

void setup() {
  sqAndBa[0] = sq; 
  sqAndBa[1] = ba;
  println(sqAndBa);
}


class Ob {
}

class Sq extends Ob {
  String toString() {
    return("I'm a square");
  }
}

class Ba extends Ob {
  String toString() {
    return("I'm a ball");
  }
}

答案 1 :(得分:0)

除了v.k.'s关于扩展通用对象类的答案(这使得从数组中迭代显示更容易)之外,您还可以考虑使用接受任意数量的不同类型对象的ArrayList:

Sq sq = new Sq();
Ba ba = new Ba();
ArrayList sqAndBa = new ArrayList();

void setup() {
sqAndBa.add(sq);
sqAndBa.add(ba);

void draw() {
// now iterate through your ArrayList and display your objects:
for (int i = 0; sqAndBa.size(); i++) {
    Ob ob = (Ob) sqAndBa.get(i);
    ob.display();

class Ob {
    // construction and display methods common to both
}

class Sq extends Ob {
    // construction or display methods particular to squares
    return sq;
}

class Ba extends Ob {
    // construction and display methods particular to circles
    return ba;
}