2013-04-17 92 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. 

    } 
} 
相关问题