0

我在一个非常简单的程序启动中遇到了一个简单的错误,这让我很困惑。我已经在适当的行中包含了对错误的评论。我错过了什么?(是的,我是一个小精灵。)

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

4 回答 4

6

您的问题是构造函数中的参数没有数据类型。

注意:
由于您的参数名称与实例变量名称相同,因此您需要使用this,如:

   public Bodies(int mass, int radius, int xpos, int ypos, float xvel, float yvel)
    {
        this.mass = mass;
        this.radius = radius;
        //...
    }

wherethis.mass指的是实例变量mass,而不是构造函数的传递参数。

有关更多信息,请查看有关 Java 构造函数的 Oracle 教程

顺便说一句,float也来自 Oracle

与 byte 和 short 的建议一样,如果您需要在大型浮点数数组中节省内存,请使用浮点数(而不是双精度数)。此数据类型绝不应用于精确值,例如货币。

于 2013-08-11T15:39:53.173 回答
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;
   ...
于 2013-08-11T15:40:08.457 回答
0

您必须在构造函数中定义参数的类型及其名称。

于 2013-08-11T15:41:11.610 回答
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;
    }

}

您缺少构造函数参数的类型。您可能想要初始化构造函数中的字段,所以我也这样做了。

于 2013-08-11T15:42:20.810 回答