2016-09-29 10 views
-1

私はいくつかのクラスを持つJavaプログラムを作成しています。私はRectangle.javaのクラスとCircle.javaのクラスを持っています。 Rectangle.javaでは、私は矩形の面積と円を比較する方法を行っています。それはpublic boolean compare(Circle C)と呼ばれています。Javaのメソッドとクラス

Principal.javaでメソッドを呼び出すと、Rectangle R = new Rectangle()Circle C = new Circle()、次にR.compare(C)と宣言します。

私の質問は、public boolean compare(Circle C)の内側に私はC.areaCircle()R.areaRectangle()を比較するための別の時間Rectangle R = new Rectangle()を呼び出す必要がありますされ、またはそれを行うための別の方法は何ですか?

+0

コードを表示する必要があります。 – 476rick

+0

コードを表示してください(いくつかの連続した行)。 –

+0

いいえ、 'R.compare(C)'を呼び出すと、 'compare'メソッドを呼び出した' R'矩形の領域と 'C'サークルの領域を比較する必要があります。 'compare'メソッドの中で' areaRectangle'を呼び出すには 'this.areaRectangle()'や 'areaRectangle()'( 'this.'はコンパイラによって暗黙的に追加されます)を使うだけです。 – Pshemo

答えて

0

R.compare(C)に電話をしているので、をcompare内に呼び出す必要はありません。ちょうどあなたがすでにあなたは、Javaに新しいように見える(それはthisキーワードである)

0

を持って、あなただけのインタフェース「HasArea」を作成する必要があり、より良い練習のためにこのキーワード

 this.areaRectangle(); 

を必要とR参照を使用、

 double calculateArea(); 
     boolean compare(HasArea obj); 

両方のクラスは、あなたのRectangleクラスにこのインタフェースとそのメソッドを実装する必要がありますので、このインターフェースは持つことができます両方の方法を比較し、calculateArea

class Rectangle implements HasArea{ 
     @Override 
     public double calculateArea() { 
     //your logic for area calculation 
     } 
     @Override 
     public boolean compare(HasArea obj) { 
     //Compare your this.calulateArea() with obj.calulateArea(); 
    } 
    }