-2

次のコード:

import java.util.ArrayList;
import java.awt.Point;
public class Polygon{
    ArrayList<Point> points;

    //constructs polygon without points

    public Polygon() {
        points = new ArrayList<Point>();
    }


    /*
     * adds a point to points
     */
    public void addPoint(Point){
        points.add(Point);
    }

    public void draw(){
        for(int i = 0; i < points.size(); i++){
             if(i == 0){
                 points.get(0).draw()
             }else{
                 points.get(i).draw()
                 Line line = new Line(points.get(i-1).getX(), points.get(i-1).getY(), points.get(i).getX(), points.get(i).getY());
                 line.draw();                 
             }
        }

        if(points.size() >= 2){
            Line line = new Line(points.get(-1).getX(), points.get(-1).getY(), points.get(-2).getX(), points.get(-2).getY());
            line.draw();
        }
    }


}

例外メッセージが表示されます:

<identifier> expected for public void addPoint(Point)

理由がわかりませんか?これらの識別子は通常、保持するオブジェクトを ArrayList に伝えるために必要ですよね?

4

5 に答える 5

4

識別子がありません。Pointタイプです。

public void addPoint(Point p){
        points.add(p);
    }
于 2013-08-27T11:28:37.717 に答える
1

識別子の定義

識別子は、変数、メソッド、クラス、パッケージ、およびインターフェースの名前です。
リテラルとは異なり、それらは物自体ではなく、それらを参照する方法にすぎません。

HelloWorld プログラムでは、HelloWorld、String、args、main、および println が識別子です。

ここで、タイプの addPoint メソッド引数の名前を付け忘れPointました。そのため、エラーが発生しています。
このコードを使用

 public void addPoint(Point p){
     points.add(p);
  }
于 2013-08-27T11:34:24.933 に答える
0

メソッド宣言の構文:

public void doSomething(Type variable){

     // logic
}

-あなたの場合、そのvariable部分が欠けています。

適切な方法:

 public void addPoint(Point point){

        points.add(point);
 }
于 2013-08-27T11:40:21.243 に答える