0

パラメータを取らないメソッドの下で Point.java の distanceTo(Point p) を Point2.java に呼び出す方法は? 方法があるはずですが、私の資料からは見つかりません。誰でも私を助けることができますか?2日間やっています。助けてください...

----------------------Point.java-------------------------- -------

public class Point{
    private int x;
    private int y;

    //x and y coordinates as parameters
    public Point(int x, int y){
        this.x = x;
        this.y = y;
    }

    //I want to call this method by calling a method which taken no parameter in Point2.java.
    public double distanceTo(Point p){
          return Math.sqrt(((x - p.x) * (x - p.x)) + ((y - p.y) * (y - p.y)));
    }
}

----------------------ClonePoint.java-------------------------- -------

public class ClonePoint{
    private int a;
    private int b;

    //x and y coordinates as parameters
    public ClonePoint(int a, int b){
        this.a = a;
        this.b = b;
    }

    //I failed with this way.  Can anybody correct me?
    public double measureDistance(){//it should be takes no parameter.
        return distanceTo(ClonePoint p)
    }

}

----------------------PointDriver.java------------------------- ----

public class PointDriver {
    public static void main(String [] args) {

        Point2 nn = new Point2(11, 22);
        Point2 mm = new Point2(33, 44);


        System.out.println(nn.distanceTo(mm)); //I succeeded with this!
        System.out.println(nn.measureDistance(mm)); //But I got an error illegal start of expression
    }
}
4

2 に答える 2

0

まず、余分な不要な作業を行っているため、同じことを行うクラスを複製することはお勧めできません。第 2 に、さまざまなポイント タイプを作成すると、それらの間のシームレスな互換性という利点が失われます。

次に、他のクラスからメソッドを呼び出したい場合は、次のように実行できます。

NameOfOtherClass.SomeMethod()

ただし、他のクラスの SomeMethod を static として宣言する必要があります...

public static double SomeMethod() { ... };

ただし、メソッドを使用して、コードで作成した具体的なポイントのデータにアクセスすることはできないため、データはすべてパラメーターに入れる必要があります。

自分のやり方でやりたい場合は、関数にパラメーターを追加してpublic double measureDistance() 、関数が距離を測定する別のポイントにアクセスできるようにする必要があります。

于 2013-07-13T09:01:39.970 に答える