假设您有一个名为Explosion的类,在没有其他类实例的某些信息的情况下,创建它的实例是没有意义的。构造函数未公开。

这样做更好吗:

// both classes are in the same package
Explosion e;
Collision c = new Collision()
// do some stuff with collision
e = c.createExplosion()

或者,对于Explosion而言,最好有一个静态方法来创建实例,然后将Collision对象作为参数传递:
Explosion e
Collision c = new Collision()
// do some stuff with collision
e = Explosion.createExplosion(c)

当您是两个类的作者时。

最佳答案

为什么构造函数不公开?对于Explosion来说,拥有一个将Collision引用作为参数的构造函数对我来说似乎很明智。

这样,您可以:

Explosion e;
Collision c = new Collision();
// do some stuff with collision
e = new Explosion(c);

10-05 21:48