2013-04-17 90 views
0
public class circle 
{ 

    double circle1; 

    double Xvalue; 

    double Yvalue; 

    double radius; 

    public double area = (3.14*(this.radius * this.radius)); 

    public double getArea() 
    { 
     return area; 




    } 

} 

//這是我將創建對象如何調用一個實例方法在另一類

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

    { 

     circle circle1 = new circle(); 

     circle1.Xvalue = 1; 

     circle1.Yvalue = 2; 

     circle1.radius = 4; 

     System.out.println(getArea()); 


     //im not too sure why the print statement won't print the method getArea. 

    } 
} 
+0

另外值得一提的是與常規類的名稱應該大寫堅持圈而不圓,而不是測試儀測試器 –

+0

'nameOfVariableContainingPointerToInstance.nameOfInstanceMethod(。參數);'(在C/C++中用''替換'''''',並且整個事情在Objective-C中開啓了它的耳朵。) –

回答

0

你需要System.out.println(circle1.getArea());秒類,否則它試圖找到)在叫的getArea(方法你的Tester類沒有這樣的方法。

而且,你的代碼將始終返回0的區域。這是因爲你如何初始化數據:

當您創建新的Circle對象它創建x值和因爲它是一個基本類型(而不是雙的雙)它默認給它一個值爲0(因爲它必須有一些值)。所以當它下降到你在那個時候定義區域變量的地方(因爲它仍然在創建你的對象,它的確會(面積= 3.14 *(0.0 * 0.0)),這將是0.

你真正想要的是更多的東西這樣的:

public class Circle { 

    double Xvalue; 

    double Yvalue; 

    double radius; 

    public Circle(double xValue, double yValue, double radius) { 
     this.xValue = xValue; 
     this.yValue = yValue; 
     this.radius = radius; 
    } 

    public double getArea() 
    { 
     return 3.1415926*(this.radius * this.radius); 
    } 
} 

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

    { 

     Circle circle1 = new Circle(1, 2, 4); 

     System.out.println(circle1.getArea()); 


     //im not too sure why the print statement won't print the method getArea. 

    } 
} 
相關問題