假设您有一个名为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);