【发布时间】:2013-12-10 05:16:53
【问题描述】:
我正在创建一个将创建 Pizza 对象的类。它考虑了它的大小(以英寸为单位的直径)、切片的数量、馅饼的成本和比萨饼的类型。
这是我第一次做这样的事情,所以我遇到了一些麻烦。
这是 Pizza 类的代码:
class Pizza
{
//instance variables
int size;
int slices;
int pieCost;
String typeOfPizza;
//constructors
Pizza (String typeOfPizza)
{
System.out.println (typeOfPizza);
}
Pizza ()
{
System.out.println ("pizza");
}
Pizza (int s, int sl, int c)
{
size = s;
slices = sl;
pieCost = c;
typeOfPizza = "????";
}
Pizza (String name, int s, int sl, int c)
{
typeOfPizza = name;
size = s;
slices = sl;
pieCost = c;
}
//behavior
double areaPerSlice(int size, int slices)
{
double wholeArea = Math.PI * Math.pow ((size/2), 2);
double sliceArea = wholeArea/slices;
return sliceArea;
}
double costPerSlice (double pieCost, int slices)
{
double sliceCost = pieCost/slices;
return sliceCost;
}
double costPerSquareInch (double sliceCost, double sliceArea)
{
double costPerSquareInch = sliceCost/sliceArea;
}
String getName(String name)
{
String typeOfPizza = name;
return typeOfPizza;
}
}
下面是调用 Pizza 类的 main 方法的代码:
class PizzaTest
{
public static void main (String [] args)
{
String typeOfPizza = "Cheese";
int size = 10; //in inches, referring to the diameter of the pizza
int numberOfSlices = 10; //number of slices
int costOfPie = 20;
Pizza myPizza = new Pizza (typeOfPizza, size, numberOfSlices, costOfPie);
System.out.printf ("Your %s pizza has %.2f square inches per slice.\n", myPizza.getName(),
myPizza.areaPerSlice() );
System.out.printf ("One slice costs $%.2f, which comes to $%.3f per square inch.\n",
myPizza.costPerSlice(), myPizza.costPerSquareInch());
}
}
基本上,输出应该打印以下内容:
您的意大利辣香肠披萨每片有 20.11 平方英寸。 一片售价 1.05 美元,即每平方英寸 0.052 美元。
这些值可以忽略,它们来自具有不同参数的示例。当我去编译这个程序时,我得到以下错误:
getName(java.lang.String) in Pizza cannot be applied to ()
System.out.printf ("Your %s pizza has %.2f square inches per slice.\n", myPizza.getName(),
^
PizzaTest.java:20: areaPerSlice(int,int) in Pizza cannot be applied to ()
myPizza.areaPerSlice() );
^
PizzaTest.java:23: costPerSlice(double,int) in Pizza cannot be applied to ()
myPizza.costPerSlice(), myPizza.costPerSquareInch());
^
PizzaTest.java:23: costPerSquareInch(double,double) in Pizza cannot be applied to ()
myPizza.costPerSlice(), myPizza.costPerSquareInch());
关于如何解决此问题的任何意见?感谢您帮助初学者!
【问题讨论】:
-
是两个类,即
Pizza和PizzaTest在同一个包中?
标签: java class object parameters double