2013-12-10 100 views
1

我创建了一个将创建比萨对象的类。它考虑到它的尺寸(以英寸为单位的直径),切片的数量,馅饼的成本以及披萨的类型。为对象创建类

这是我第一次做这样的事情,所以我遇到了一些混乱。

下面是类披萨的代码:

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; 
    } 
} 

下面是在披萨类调用主方法的代码:

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()); 

有关如何解决此问题的任何输入?感谢您帮助开始的程序员!

+0

都属于同一包中的“Pizza”和“PizzaTest”类? – codeMan

回答

0

您的函数采用非可选字符串。

String getName(String name) 
{ 
    String typeOfPizza = name; 
    return typeOfPizza; 
} 

应该是两个功能

String getName() { // needed a string before. 
    return typeOfPizza; 
} 

void setName(String name) { 
    typeOfPizza = name; 
} 

另外,你或许应该称之为场name或这些方法(S)应getTypeOfPizzasetTypeOfPizza

0

我不认为你的Pizza类会编译。

double costPerSquareInch (double sliceCost, double sliceArea){ 
    double costPerSquareInch = sliceCost/sliceArea; 
    // missing return. 
} 

首先让那一个正确。

然后

myPizza.getName() // need input argument as String 

那么这应该是

myPizza.getName("inputString"); 

还有另外两个具有相同的输入参数的问题。

myPizza.areaPerSlice()// two int input arguments. 

更正为

myPizza.areaPerSlice(1,2); 

下一个

myPizza.costPerSlice();// double and int input arguments. 

正确的,因为

myPizza.costPerSlice(2.0,2); 

最后

myPizza.costPerSquareInch() // two double input arguments. 

更正为

myPizza.costPerSquareInch(2.0,1.0) ; 
0

错误说这一切......

double areaPerSlice(int size, int slices) 
    { 
     double wholeArea = Math.PI * Math.pow ((size/2), 2); 
     double sliceArea = wholeArea/slices; 
     return sliceArea; 
    } 

System.out.printf ("Your %s pizza has %.2f square inches per slice.\n", myPizza.getName(), 
      myPizza.areaPerSlice()); 
在方法定义

,你正在服用2名ARGS ...但同时呼吁您使用0参数。 ..这适用于其他错误也。

0
problem 

你的功能要求一个parameter.As你没有功能getNamesingle parameter

Solution 

你必须定义像

String getName() 
{ 
    return typeOfPizza; 
} 

,你还是要的方法也为这些电话做。

myPizza.areaPerSlice() 
myPizza.costPerSlice() 
myPizza.costPerSquareInch() 
1

变化

String getName(String name) 
{ 
    String typeOfPizza = name; 
    return typeOfPizza; 
} 

String getName() 
{ 
    return typeOfPizza; 
} 

double costPerSquareInch (double sliceCost, double sliceArea){ 
    double costPerSquareInch = sliceCost/sliceArea; 
} 

double costPerSquareInch (double sliceCost, double sliceArea){ 
    return costPerSquareInch = sliceCost/sliceArea; 
} 

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(costOfPie,numberOfSlices), myPizza.costPerSquareInch(sliceCost,sliceArea)); 

System.out.printf ("Your %s pizza has %.2f square inches per slice.\n", myPizza.getName(), 
       myPizza.areaPerSlice(size, numberOfSlices)); 

    System.out.printf ("One slice costs $%.2f, which comes to $%.3f per square inch.\n", 
       myPizza.costPerSlice(costOfPie,numberOfSlices), myPizza.costPerSquareInch(sliceCost,sliceArea)); 
0
public class Pizza 
{ 

//instance variables 
pirvate int size; 
private int slices; 
private int pieCost; 
private String typeOfPizza; 


//constructors 
public Pizza (String typeOfPizza) 
{ 
    System.out.println (typeOfPizza); 
} 

public Pizza() 
{ 
    System.out.println ("pizza"); 
} 

public Pizza (int size, int slices, int pieCost) 
{ 
    this.size = size; 
    this.slices = slices; 
    this.pieCost = pieCost; 
    typeOfPizza = "????"; 
} 

public Pizza (String typeOfPizza, int size, int slices, int pieCost) 
{ 
    this.typeOfPizza = typeOfPizza 
    this.size = size; 
    this.slices = slices; 
    this.pieCost = pieCost; 
} 

//behavior 

public double areaPerSlice(int size, int slices) 
{ 
    double wholeArea = Math.PI * Math.pow ((size/2), 2); 
    double sliceArea = wholeArea/slices; 
    return sliceArea; 
} 

public double costPerSlice (double pieCost, int slices) 
{ 
    double sliceCost = pieCost/slices; 
    return sliceCost; 
} 

public double costPerSquareInch (double sliceCost, double sliceArea) 
{ 
    double costPerSquareInch = sliceCost/sliceArea; 
} 

public String getName(String name) 
{ 
    String typeOfPizza = name; 
    return typeOfPizza; 
} 
} 


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"+myPizza.getName()+" pizza has "+myPizza.areaPerSlice() +".2f square inches per slice.\n"); 

    System.Out.Printf ("One slice costs "+myPizza.costPerSlice()+".2f, which comes to "+myPizza.costPerSquareInch()+".3f per square inch.\n"); 
} 
} 

希望这会帮助你。