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;
        //...
    }

whereは、コンストラクターの渡されたパラメーターではなくthis.mass、インスタンス変数を参照します。mass

詳細については、Java コンストラクターに関する Oracle チュートリアルを参照してください。

余談ですが、floatOracleからも

byte と short の推奨事項と同様に、浮動小数点数の大きな配列でメモリを節約する必要がある場合は、(double ではなく) float を使用します。このデータ型は、通貨などの正確な値には使用しないでください。

于 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 に答える