2014-11-23 85 views
0

我最初写了下面Point类:使用点类计算圆的面积和周长

public class Point { 

    private double x; 
    private double y; 

    public Point (double x, double y) { 

     this.x = x; 
     this.y = y; 
    } 
} 

我试图用点类作为存储这样以后在圆的起源的一种方式我可以计算出,如果2圆相交:

public class Circle { 

    double radius; 
    Point origin; 

    public Circle (Point origin, double radius) { 
     this.radius = radius; 
     this.origin = origin; 
    } 

    public double circumfurence (double radius) { 
     return 2 * radius * Math.PI; 
    } 

    public double area (double radius) { 
     return Math.PI * radius * radius; 
    } 

    public static void main(String[] args) { 
     Circle c = new Circle((3.0,3.0), 3.0); 
     System.out.println(c.area()); 
     System.out.println(c.circumfurence()); 
    } 

} 

然而,当我尝试编译两个文件我得到以下错误:

Circle.java:20: error: ')' expected 
    Circle c = new Circle((3.0,3.0), 3.0); 
          ^

如果我删除周围(3.0,3.0)括号我得到这个错误:

Circle.java:20: error: constructor Circle in class Circle cannot be applied to given types; 
    Circle c = new Circle(3.0,3.0, 3.0); 
      ^
required: Point,double 
found: double,double,double 
reason: actual and formal argument lists differ in length 

编辑:谢谢,但我仍然得到错误:

Circle.java:21: error: method area in class Circle cannot be applied to given types; 
    System.out.println(c.area()); 
         ^
required: double 
found: no arguments 
reason: actual and formal argument lists differ in length 
+0

那么f或者第二部分再次解决方案出现在错误消息中。删除“radius”参数以匹配调用代码 – Reimeus 2014-11-23 21:34:28

回答

3

Circle需要Point实例作为其第一个构造函数参数

Circle c = new Circle(new Point(3.0,3.0), 3.0); 
+0

所有这些错误消息都清楚地表明了相关的问题。在这种情况下,“区域”的参数数量不匹配 – Reimeus 2014-11-23 21:30:04