2

最初に言わせてください、私はプログラミングとこのウェブサイトの両方に不慣れです。ここを訪れるのは初めてで、これは私の 2 番目のプログラミング プロジェクトです。:)

コンパイル中にこれの一番下にエラーが発生し、赤いボックスが - x2 に表示され、おそらく - y2 にも表示されます。エラーは予期しないタイプです。

基本的に、ポイントの差を取得するプロジェクトを実行していますが、これは終了していませんが、コンパイルエラーを回避する方法がわかりません。最初に、x2 と y2 を格納するためのフィールドを追加しようとしましたが、このエラーを回避して別のエラーが発生しました (これ以上フィールドを追加しないと思われるため、消去しました)。結局必要だと思うreturn math.sqrt(double x3) + math.sqrt(double y3)

ブルージェイを使用しています。これは、グルが覚えている新しい人にとっては簡単に見えるかもしれません。:)

public class Point {
    //fields holding info for x,y
    private double x;
    private double y;

    //default constructor, set to 0.0
    public Point()  {
        x = 0.0;
        y = 0.0;
    }

    //constructor that user can set field values
    public Point (double x, double y) {
            this.x = x;
            this.y = y;
    }

    //This is optional. return value of x
    public double getx () {
        return x;
    }

    //This is optional. return value of y
    public double gety () {
        return y;
    }

    //take new parameter find distance between field parameter and new parameter 
    public double distanceTo (double x2, double y2) {
        x - x2 = x3;
        y - y2 = y3;
    }
}
4

3 に答える 3

5

Java (およびほとんどのプログラミング言語) では、方程式を書いているのではなく、命令を書いていると考えるべきです。

= 基本的には、左の「もの」を現在の右の「もの」にすることを意味します。または、StormeHawke の言葉を借りれば、

Java や他のほとんどのプログラミング言語の = 演算子は、頭の中で「等しい」と解釈すべきではなく、「定義されている」と解釈すべきです。

それで

x3= x - x2;

x3 を x - x2 に変更できるため有効ですが、

x - x2 = x3;

は有効ではありません。変更するのは左側のどれですか: x、x2、またはその両方ですか?

これは、次のように書くのが完全に合理的であることを意味します。

x=x+1;

方程式としては意味がありませんが、指示としては完全に理にかなっています。「x を現在の x に 1 を足した値に等しくする」ということです。

その他の問題

  • これを解決した後、 double を返すように定義されているがそうではないこともわかりますdistanceTo()。「答え」を返すか、その戻り値を void に変更する必要があります
  • x3 も「ある」ものとして定義されていません。使用前/使用時に宣言する必要があり、double として推定できます
于 2013-10-15T20:16:53.733 に答える
1

x - x2 = x3;は Java の構文が正しくなく、distanceTo()メソッドは a を返すはずdoubleですが、何も返しません。

于 2013-10-15T20:15:47.823 に答える
1

コンパイラは x3 と y3 が何であるかを認識していないため、クラスの予期されたエラーが発生しています。それらを使用するには、最初にそれらを宣言する必要がありdouble x3;ます。ただし、メソッドの実装distanceToも変更する必要があります。

于 2013-10-15T20:24:30.550 に答える