我在一个非常简单的程序启动中遇到了一个简单的错误。我在相应的行中包含了错误的注释。我错过了什么? (是的,我是个笨蛋。)
package mainPack;
public class Bodies{
int mass;
int radius;
int xpos;
int ypos;
float xvel;
float yvel; //Syntax error, insert "}" to complete ClassBody
public Bodies(mass, radius, xpos, ypos, xvel, yvel){
}
} //Syntax error on token "}", delete this token
答案 0 :(得分:6)
您的问题是构造函数中的参数没有数据类型。
NB:
由于您的参数名称与实例变量名称相同,因此您需要使用this
,如下所示:
public Bodies(int mass, int radius, int xpos, int ypos, float xvel, float yvel)
{
this.mass = mass;
this.radius = radius;
//...
}
其中this.mass
引用实例变量mass
,而不是构造函数的传递参数。
有关详细信息,请查看Oracle Tutorial on Java Constructors。
另外,在float
也来自Oracle :
与byte和short的建议一样,使用float(而不是 of double)如果需要在大型浮动数组中保存内存 点数。绝不应将此数据类型用于精确值, 比如货币。
答案 1 :(得分:2)
声明构造函数时,需要指定其参数的类型:
public Bodies(int mass, int radius, int xpos, int ypos, float xvel, float yvel) {
完成此操作后,您还需要初始化数据成员:
public Bodies(int mass, int radius, int xpos, int ypos, float xvel, float yvel) {
this.mass = mass;
...
答案 2 :(得分:0)
您必须在构造函数中定义参数的类型及其名称。
答案 3 :(得分:0)
package mainPack;
public class Bodies{
int mass;
int radius;
int xpos;
int ypos;
float xvel;
float yvel;
public Bodies(int mass, int radius, int xpos, int ypos, float xvel, float yvel){
this.mass = mass;
this.radius = radius;
this.xpos = xpos;
this.ypos = ypos;
this.xvel = xvel;
this.yvel = yvel;
}
}
您缺少构造函数参数的类型。您可能希望初始化构造函数中的字段,因此我也这样做了。