2016-09-29 59 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)裏面,我需要調用另一個時間Rectangle R = new Rectangle()C.areaCircle()比較R.areaRectangle(),或有另一種方式做到這一點?

+0

您應該顯示您的代碼。 – 476rick

+0

顯示您的代碼(連續幾行)。 –

+0

不,當你調用'R.compare(C)'時,你應該比較''比較'方法的'R'矩形的區域和'C'圈的區域。要在'compare'方法內調用'areaRectangle',只需使用'this.areaRectangle()'或者'areaRectangle()'('this.'將被編譯器隱式添加)。 – Pshemo

回答

0

由於您致電R.compare(C)您不需要撥打compare函數中的Rectangle R = new Rectangle()函數。只需使用R參考你已經有(它是this關鍵字)

0

你似乎對Java,你只需要這個關鍵字

 this.areaRectangle(); 

爲了更好的練習,你應該創建一個界面「HasArea」 ,這個接口可以有兩種方法比較和calculateArea,

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

兩個類應該在你的Rectangle類實現此接口及其方法,以便

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(); 
    } 
    }