如何访问我的" Cone"来自我的#34; Main"类。我得到的错误是我的Main类中的点运算符。我对java非常陌生,所以我真的很困惑你如何访问我在" Cone"任何细节都将非常感谢。谢谢
class Cone {
public double r;
public double h;
public void setRadius() {
r = r;
}
public void setHeight() {
h = h;
}
public double volume(double r, double h) {
double v;
v = Math.PI * Math.pow(r, 2) * (h / 3);
return v;
}
public double surfaceArea(double r, double h) {
double sa;
sa = Math.PI * r * (r + Math.sqrt(Math.pow(h, 2) + Math.pow(r, 2)));
return sa;
}
}
class Main {
public static void main(String args[]) {
double r;
double h;
Cone cone = new Cone();
for (double i = 0; i < 10; i++) {
cone.volume(r);
cone.volume(h);
System.out.printf("Volume = %d\n", cone.Volume());
}
}
}
答案 0 :(得分:0)
我认为你的错误是cone.Volume()
应该是cone.volume()
。而且,您需要提供参数。我会通过删除那些set方法并添加一个参数化构造函数来修改Cone类,如下所示:
public Cone(double r, double h)
{
//initialize fields
this.r = r;
this.h = h
}
答案 1 :(得分:0)
第一次错误更新您的代码
public void setRadius(double r)
{
this.r = r;
}
public void setHeight(double h)
{
this.h = h;
}
答案 2 :(得分:0)
您可以按setter
设置值,但在您的代码中,变量的setter没有任何可接受的参数:
public void setRadius(double r) {
this.r = r;
}
答案 3 :(得分:0)
首先,您可能需要一个可以初始化维度的构造函数
public Cone(double r, double h){
this.r = r;
this.h = h;
}
接下来,您的volume
方法需要两个双参数
//use this
cone.volume(r,h);
//not this
cone.volume(r);
cone.volume(h);
最后,由于此方法返回带卷的double,您将需要另一个双变量来捕获它以供以后使用
double v = cone.volume(r,h);
答案 4 :(得分:0)
对于基本的开始,仅在Main类中将一些值硬编码为r和h。
答案 5 :(得分:0)
快速解决问题
class Cone
{
public double r;
public double h;
public void setRadius(double r)
{
this.r = r;
}
public void setHeight(double h)
{
this.h = h;
}
public double volume()
{
double v;
v = Math.PI * Math.pow(r,2) * (h/3);
return v;
}
public double surfaceArea()
{
double sa;
sa = Math.PI* r * (r + Math.sqrt(Math.pow(h,2) + Math.pow(r,2)));
return sa;
}
}
class Main
{
public static void main(String args[ ])
{
double r;
double h;
Cone cone = new Cone();
for (double i = 0; i < 10; i++)
{
// r and h are not set yet
r = h = i; // maybe?
cone.setRadius(r);
cone.setHeight(h);
System.out.printf("Volume = %d\n", cone.volume( ));
}
}
}