Java基本编译错误

时间:2013-08-11 15:38:41

标签: java compiler-errors

我在一个非常简单的程序启动中遇到了一个简单的错误。我在相应的行中包含了错误的注释。我错过了什么? (是的,我是个笨蛋。)

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

4 个答案:

答案 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;
    }

}

您缺少构造函数参数的类型。您可能希望初始化构造函数中的字段,因此我也这样做了。