1

コンストラクターが変数を適用しないのはなぜですか?:

java.awt.geom.Point2D をインポートします。

public class Waypoint extends Point2D.Double{

private double s;
private String street;

public Waypoint(double x, double y, double s, String street) {
    super(x,y);
    s=9;
    street="Street";
}
   }

ここに何が欠けていますか?

4

2 に答える 2

3

変化する

import java.awt.geom.Point2D;

public class Waypoint extends Point2D.Double{

    private double s;
    private String street;

    public Waypoint(double x, double y, double s, String street) {
        super(x,y);
        s=9;
        street="Street";
    }

import java.awt.geom.Point2D;

public class Waypoint extends Point2D.Double{

    private double s;
    private String street;

    public Waypoint(double x, double y, double s, String street) {
        super(x,y);
        this.s = s;
        this.street = street;
    }

コンストラクターに渡された値を使用していません。

于 2012-11-04T03:30:44.107 に答える
0

これらの行...

s=9;
street="Street";

...コンストラクターの引数に対応するローカル変数に値を割り当てますが、代わりにフィールドに割り当てたい場合は、次のようにします。

this.s = s;
this.street = street; // or "Street", if you prefer

プレフィックスは、同じ名前のthis.ローカル変数ではなく、フィールドを参照していることをコンパイラに理解させます。

于 2012-11-04T03:31:08.130 に答える