2 回答
TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
讓我們從類 Circle 開始。這是您的原始代碼:
public class Circle
private int radius = getRadius();
private double area = getArea();
public Circle(int r)
{
r = radius;
}
public int getRadius()
{
return radius;
}
public double getArea(int r)
{
return area = Math.PI * r * r;
}
}
對(duì)于您的變量,您不需要“面積”,因?yàn)樗怯?jì)算出來(lái)的。此外,除了在構(gòu)造函數(shù)中,您不應(yīng)該將半徑分配給任何東西:
private int radius;
//private double area = getArea(); <-- don't need this variable at all
您將“r”傳遞給構(gòu)造函數(shù),但隨后錯(cuò)誤地嘗試為其分配“半徑”值。這是倒退;您應(yīng)該將“r”值分配給“radius”:
public Circle(int r)
{
radius = r;
}
最后,在 中g(shù)etArea(),您不需要傳入的半徑或“區(qū)域”;只需返回計(jì)算值(使用“半徑”中的存儲(chǔ)值,而不是“r”):
public double getArea()
{
return Math.PI * radius * radius;
}
總而言之,您的 Circle 類應(yīng)該看起來(lái)更像:
public class Circle
private int radius;
public Circle(int r)
{
radius = r;
}
public int getRadius()
{
return radius;
}
public double getArea()
{
return Math.PI * radius * radius;
}
}
在 CircleTest 中,您應(yīng)該首先從用戶那里獲取半徑,然后將其傳遞給 Circle 的構(gòu)造函數(shù)。最后,使用您的 Circle 實(shí)例,調(diào)用它的 getRadius() 和 getArea() 方法。
TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
你還沒有定義變量r和area,來(lái)幫助解決這個(gè)問題
替換double area = getArea(r);為double area = circle.getArea(radius);
和
System.out.println("The area of the circle is... " + area);和System.out.println("The area of the circle is... " + circle.getArea(Integer.parseInt(area)));
這里的圓是類圓的對(duì)象
Circle circle = new Circle(radius) //Note: circle cannot be accessed from main function create another object for class circle again in main
它應(yīng)該有幫助
添加回答
舉報(bào)
