因此我非常想要用两个行星模拟一个宇宙,每个行星的表面都会有一个火箭。
问题是,当我试图将行星添加到宇宙时,我到处都是错误 我想知道我是否应该继续使用相同的Class或者为#34; Planet"创建一个特定的类,当我尝试定位行星时,它说该方法对于该类是未知的,尽管我们做了一个在演讲中的例子,当时没有错误
这是代码
import gdi.univrse*
public class SomeUniverse {
public static void main(String[]args){
Universe u = new Universe (args);
Planet Planet1 = new Planet(41 , 700,u);
Planet Planet2 = new Planet(51 , 610,u);
u.simulate();
}
}
所以基本上它说构造函数(double,double,Universe)是未定义的 当我尝试一步一步地做它也不起作用
答案 0 :(得分:1)
我删除了之前的答案,因为结果是Planet
和Universe
做,您只是没有正确使用它们。
Planet
类定义它的构造函数如下:
public Planet(double x, double y) {
this();
this.setLocation(x, y);
}
public Planet() {
createdInstances.add(this);
this.planet = new gdi.scene.universe.Planet();
}
这意味着您必须创建一个没有参数或带有x和y的行星,如下所示:
Planet myPlanet = new Planet(41, 700); // Location is set to 41, 700
Planet mySecondPlanet = new Planet(); // Location defaults to 0, 0
要将一个行星添加到宇宙中,您只需在宇宙上调用addEntity(myPlanet)
,如下所示:
import gdi.universe.*
public class SomeUniverse {
public static void main(String[] args){
Universe universe = new Universe(args);
Planet firstPlanet = new Planet(41, 700);
Planet secondPlanet = new Planet(51, 610);
universe.addEntity(firstPlanet);
universe.addEntity(secondPlanet);
universe.simulate();
}
}
看起来gdi
包是一个自定义库,由任何人提供给你(我假设你的学校/大学),他们应该在其上提供一些文档。
答案 1 :(得分:-1)
您的导入声明无法解决。如果您尝试导入该包中的所有类,则应编写
import gdi.univrs.* // assuming you meant to leave out the first 'e'
相反,我建议您单独导入类。你说已经有一个行星类了,在这种情况下我建议你导入它以便明确使用:
import gdi.universe.Planet // assuming it really has two 'e's
这样做的一个原因是,如果该类不存在,或者在编译时类路径中不可用,编译器会告诉您。然后你会知道这就是问题,并在你去寻找其他错误之前解决它。
现在,如果类已经存在,那么它们的构造函数已经定义。您需要阅读一些文档,告诉您合法的构造函数是什么,或者以其他方式获取该信息(例如,Eclipse会给您一条消息,说明如果写错了那些参数是预期的)。您只能使用类定义的构造函数。