【发布时间】:2015-02-09 05:18:42
【问题描述】:
我知道这类问题经常被问到,而且我已经阅读过 this one 和 this one 但由于某种原因,我仍然无法理解我当前程序遇到的问题。
我正在尝试创建一组定义一系列 3-D 形状的类,这些形状可以存储其大小,并提供更改数据的访问权限。它还应该能够计算周长、面积和体积。我只到了我正在做我的第一个选择的形状(一个球体)的地步,我在 if 语句中的 println 中遇到了这个错误。
import java.util.Scanner;
public class Shapes
{
public static void main(String[] args)
{
String input;
double Radius;
Scanner scan = new Scanner(System.in);
System.out.println("Choose a shape. 'S' for sphere, 'P' for pyramid, 'C' for cone: ");
input = scan.next();
if (input.equals("S"))
{
System.out.println("Enter radius: ");
Radius = scan.nextDouble();
Sphere calcCircumference;
Sphere calcArea;
Sphere calcVolume;
System.out.println("The circumference is "+Sphere.circumference+", the area is "+Sphere.area+", the volume is "+Sphere.volume+".");
}
}
}
public class Sphere
{
// instance variables
protected double radius;
protected double circumference;
protected double area;
protected double volume;
Scanner scan = new Scanner(System.in);
/**
* Constructor for objects of class Sphere
*/
public Sphere()
{
// initialise instance variables
radius = 0;
circumference = 0;
area = 0;
volume = 0;
}
/**
*Gets user entered radius
*/
public double getRadius(double Radius)
{
radius = radius;
return radius;
}
public double calcCircumference()
{
circumference = 2*Math.PI*radius;
return circumference;
}
public double calcArea()
{
area = 4*Math.PI*Math.pow(radius,2);
return area;
}
public double calcVolume()
{
volume = (4*Math.PI*Math.pow(radius,3))/3;
return volume;
}
}
任何帮助或指导将不胜感激。
【问题讨论】:
-
Sphere.circumference- 哪个领域? -
您需要创建一个 Sphere 对象来访问圆周或将它们定义为静态,为什么要创建 Sphere 的 calcCircumference calcArea calcVolume 对象?还是您想像这样调用这些函数?
标签: java variables non-static