【发布时间】:2020-09-17 16:36:23
【问题描述】:
标题,我在想这样的事情
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);
所以我想在初始化对象时将这些对象添加到“形状”列表中。
有什么想法吗?
【问题讨论】:
-
将
Shapes对象传递给构造函数,将this添加到构造函数内的该对象。也许Circle和Rectangle有一个共同的祖先类,它的构造函数中有这个以避免重写它。 -
我考虑过将 Shapes 作为参数传递,但我需要为所有形状执行此操作,这可行,但我想看起来很糟糕。
-
根据你的需要,让每个实例都知道它的“容器”通常是一种不好的模式,所以你不会在构造函数中传递它
-
问题是,您是否需要访问
c或r?你能做s.add(new Circle())吗?那么只处理s? -
我认为这个程序实际上是有意义的,因为它包含在哪个类别中很重要。
标签: java class oop inheritance