标题,我在想这样的事情
Shapes s = new Shapes();
Circle c = new Circle("Our", "Parameters");
Rectangle r = new Rectangle("Our", "Parameters");
Shapes.addToList(c); // I don't want to do this for every object I create
Shapes.addToList(r);
所以我想在初始化对象时将这些对象添加到“形状”列表中。
有什么想法吗?
答案 0 :(得分:0)
如果Circle和Square都继承自Shapes,则在Shapes构造函数中,可以自动将其添加到列表中。在析构函数中,您要删除它。importjava.util。*;
public class Shapes {
public static List<Shapes> allMyShapes = new ArrayList<Shapes>();
public Shapes() {
addToShapes(this);
}
static public void addToShapes(Shapes myShape) {
allMyShapes.add(myShape);
}
static public void dump() {
System.out.printf("Number of shapes stored: %d\n", allMyShapes.size());
}
}
public class Foo {
public static void main(String[] args) {
Shapes myFirstShape = new Shapes();
Circle myCircle = new Circle();
Square mySquare = new Square();
Shapes.dump();
}
}
我没有实现析构函数。当然,仅当您始终希望这种行为时,这种方法才有用。