BlueJ Java问题

BlueJ Java问题,java,bluej,Java,Bluej,我的冰淇淋项目有些问题 当我使用topping和ice cream类中的访问器方法返回字符串值时,它们不会返回字符串值。我没有注意到代码有任何问题 当我进入圣代课程,输入冰淇淋的细节并加满时,它会出现这样的信息。​ 错误:不兼容的类型:java.lang.String无法转换为冰淇淋 以下是冰淇淋、配料和圣代类的代码: IceCream.java Topping.java 圣代java 感谢您的帮助您的代码中有一些错误 1。您的实例变量未在上述所有类中正确初始化。 public String

我的冰淇淋项目有些问题

当我使用topping和ice cream类中的访问器方法返回字符串值时,它们不会返回字符串值。我没有注意到代码有任何问题

当我进入圣代课程,输入冰淇淋的细节并加满时,它会出现这样的信息。​

错误:不兼容的类型:java.lang.String无法转换为冰淇淋

以下是冰淇淋、配料和圣代类的代码:

IceCream.java Topping.java 圣代java
感谢您的帮助

您的代码中有一些错误



1。您的实例变量未在上述所有类中正确初始化。

public String getDetails() // Sundae class
{       
    return scoops + " scoops of " + typeOfScoop + " Ice Cream" +  " with " + typeOfTopping + " with a price of " + getPrice();
}
IceCream类中的构造函数可能应该是:

public IceCream(String typeOfScoop)
{
    // initialise instance variables
       this.typeOfScoop = typeOfScoop;
       price = 1.20;
}
public Topping(String typeOfTopping)
{
   // initialise instance variables
      this.typeOfTopping = typeOfTopping;
      price = 0.40;
}
public Sundae(IceCream scoopType, Topping typeOfTopping, int scoops)
{
   // initialise instance variables     
      this.typeOfScoop = scoopType;
      this.typeOfTopping = typeOfTopping;
      this.scoops = scoops;
}
public void setScoopType (String typeOfScoop)
{
     this.typeOfScoop = typeOfScoop;
}
public void setTopping(String typeOfTopping)
{
     this.typeOfTopping = typeOfTopping;
}
Topping类中的构造函数可能是:

public IceCream(String typeOfScoop)
{
    // initialise instance variables
       this.typeOfScoop = typeOfScoop;
       price = 1.20;
}
public Topping(String typeOfTopping)
{
   // initialise instance variables
      this.typeOfTopping = typeOfTopping;
      price = 0.40;
}
public Sundae(IceCream scoopType, Topping typeOfTopping, int scoops)
{
   // initialise instance variables     
      this.typeOfScoop = scoopType;
      this.typeOfTopping = typeOfTopping;
      this.scoops = scoops;
}
public void setScoopType (String typeOfScoop)
{
     this.typeOfScoop = typeOfScoop;
}
public void setTopping(String typeOfTopping)
{
     this.typeOfTopping = typeOfTopping;
}
Sundae类中的构造函数可能是:

public IceCream(String typeOfScoop)
{
    // initialise instance variables
       this.typeOfScoop = typeOfScoop;
       price = 1.20;
}
public Topping(String typeOfTopping)
{
   // initialise instance variables
      this.typeOfTopping = typeOfTopping;
      price = 0.40;
}
public Sundae(IceCream scoopType, Topping typeOfTopping, int scoops)
{
   // initialise instance variables     
      this.typeOfScoop = scoopType;
      this.typeOfTopping = typeOfTopping;
      this.scoops = scoops;
}
public void setScoopType (String typeOfScoop)
{
     this.typeOfScoop = typeOfScoop;
}
public void setTopping(String typeOfTopping)
{
     this.typeOfTopping = typeOfTopping;
}


2。不正确的突变方法。

public String getDetails() // Sundae class
{       
    return scoops + " scoops of " + typeOfScoop + " Ice Cream" +  " with " + typeOfTopping + " with a price of " + getPrice();
}
IceCream类中正确的mutator方法可能是:

public IceCream(String typeOfScoop)
{
    // initialise instance variables
       this.typeOfScoop = typeOfScoop;
       price = 1.20;
}
public Topping(String typeOfTopping)
{
   // initialise instance variables
      this.typeOfTopping = typeOfTopping;
      price = 0.40;
}
public Sundae(IceCream scoopType, Topping typeOfTopping, int scoops)
{
   // initialise instance variables     
      this.typeOfScoop = scoopType;
      this.typeOfTopping = typeOfTopping;
      this.scoops = scoops;
}
public void setScoopType (String typeOfScoop)
{
     this.typeOfScoop = typeOfScoop;
}
public void setTopping(String typeOfTopping)
{
     this.typeOfTopping = typeOfTopping;
}
Topping类中正确的mutator方法可能是:

public IceCream(String typeOfScoop)
{
    // initialise instance variables
       this.typeOfScoop = typeOfScoop;
       price = 1.20;
}
public Topping(String typeOfTopping)
{
   // initialise instance variables
      this.typeOfTopping = typeOfTopping;
      price = 0.40;
}
public Sundae(IceCream scoopType, Topping typeOfTopping, int scoops)
{
   // initialise instance variables     
      this.typeOfScoop = scoopType;
      this.typeOfTopping = typeOfTopping;
      this.scoops = scoops;
}
public void setScoopType (String typeOfScoop)
{
     this.typeOfScoop = typeOfScoop;
}
public void setTopping(String typeOfTopping)
{
     this.typeOfTopping = typeOfTopping;
}


3。对象到字符串的转换不正确。

public String getDetails() // Sundae class
{       
    return scoops + " scoops of " + typeOfScoop + " Ice Cream" +  " with " + typeOfTopping + " with a price of " + getPrice();
}
typeOfScoop和TypeOfTaping变量不是字符串。Java无法在上述方法中将它们自动转换为所需的字符串,因为您没有重写IceCream和Topping类中的toString()方法


必须添加以下两种方法:

把这个加到冰淇淋课上

@Override
public String toString() 
{       
    return typeOfScoop;
}
将此添加到Topping类

@Override
public String toString() 
{       
   return typeOfTopping;
}

或将Sundae类中的getDetails()方法修改为:

public String getDetails()
{   
   return scoops + " scoops of " + typeOfScoop.getScoopType() + " Ice Cream" +  " with " + typeOfTopping.getTopping() + " with a price of " + getPrice();
}

希望这能有所帮助。祝你好运,编程愉快

干杯


崇高的

你的主要职业在哪里?@polywhill先生:这个问题在我看来已经足够明显了,不需要
Main
。所以这是一个?…这段代码中有很多奇怪的事情:在
冰淇淋::setcooptype
Topping::setTopping
中缺少
这个
,不要在圣代的构造函数中使用
scoopType
参数。。。打字错误与否?您可以提供
main
条目吗?您的
Sundae
类中有一个错误<代码>this.typeOfScoop=typeOfScoop应该是:
this.typeOfScoop=scoopType非常感谢!这对我帮助很大