2013-10-08 41 views
0

我应该使用我在另一个类中创建的圆形对象来查找圆柱的体积。当我创建我的getVolume方法时,它告诉我我不能乘以Circle和double,并且想知道如何修复它。我无法在Cylinder类中创建getArea方法,只需使用用户输入的半径创建一个新的Circle。这里的代码(第一次为Circle类,第二次为Cylinder类):使用圆形对象查找圆柱的体积

public class Circle { 
    private double radius; 

    public Circle(double r) { 
    radius = r; 
    } 

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

public class Cylinder { 
    private Circle base; 
    private double height; 

    public Cylinder(double r, double h) { 
    base = new Circle(r); 
    height = h; 
    } 

    public double getVolume() { 
    return base * height; 
    } 
} 

所以getVolume方法是我的问题。如何让程序识别“base”为double,同时它仍然是一个Circle对象?

回答

3

你想写

public double getVolume() { 
    return base.getArea() * height; 
    } 

,对吗?

否则,只是想到它:你乘以与长度?不,你将一个区域乘以一个长度以获得该卷...

另外,如果圆也具有名称属性,应该乘以什么?没有什么魔法,JVM做你告诉它做的事情。

+0

+1提供一个解释,不只是一个补丁。 – pburka

1

您需要将圆的面积乘以高度。但是你不能乘以Circledouble。致电getArea()您的Circle

return base.getArea() * height; 
1

return base.getArea() * height