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