classyclass.java:
package work1;
public class classyclass {
public static void main(String[] args) {
int num;
num = 0;
num++;
System.out.println(" blah blah blah " + num);
Coffee latte = new Coffee();
Coffee capuccino = new Coffee();
latte.price = 5;
capuccino.price = 11;
latte.beverage();
capuccino.beverage();
}
}
Coffee.java:
package work1;
public class Coffee {
int price;
String coffeeType;
void beverage() {
if (coffeeType == "latte" )
{
System.out.println("The price of latte is " + latte.price );
}
else if(coffeeType == "capuccino")
{
System.out.println("The price of a cappuccino is " + capuccino.price);
}
}
}
作为一名冒险进入Java的业余C程序员,我对使用这些类和对象感到非常困惑。 我想要的是将classyclass类中的值带入coffee类,然后在main方法中再次执行该数据。 我正在混合东西,请帮忙
答案 0 :(得分:1)
更改字符串比较
coffeeType == "latte"
到
coffeeType.equals("latte")
这就是java比较字符串值的方式。根据这些更改对代码的其余部分进行更改。
答案 1 :(得分:1)
您的代码中存在一些错误或不合逻辑的内容:
1)如果您只使用num
打印值1
,为什么不将其更改为:
int num = 1;
或
System.out.println(" blah blah blah " + 1);
甚至
System.out.println(" blah blah blah 1");
2)您创建了类型/类Coffee的新对象,但您从未在对象中设置变量String coffeeType
。执行此操作的标准方法是创建一个类似的构造函数:
main()
中的:
Coffee latte = new Coffee("latte");
并在Coffee
类中创建构造函数:
public Coffee(String coffee){
this.coffeeType = coffee;
}
3)您必须将字符串与.equal()方法进行比较:
if("latte".equals(this.coffeeType)){ System.out.println("\nThis is latte coffee"); }
npinti提到的一些进一步说明:使用getter和setter方法设置变量并检索它们:
public void setType(String type){
this.coffeeType = type;
}
public void setPrice(int price){
this.price = price;
}
public int getPrice(){
return this.price;
}
答案 2 :(得分:0)
试试这段代码。我试图使用java约定来理解你。
您的ClassyClass课程:
import java.util.*;
public class ClassyClass
{
ArrayList<Coffee> myClub;
Scanner myInput;
public ClassyClass()
{
myClub = new ArrayList<Coffee>();
myInput = new Scanner(System.in);
myClub.add(new Coffee("latte", 5));
myClub.add(new Coffee("capuccinno", 11));
System.out.println("Do you want to place an order? Enter 1 for yes and 2 for no.");
int choice = myInput.nextInt();
System.out.println(myClub.size());
if (choice == 1)
{
myCoffeeClub();
}
else { }
}
public void myCoffeeClub()
{
System.out.print("Enter latte or capuccinno: ");
String item = myInput.next();
int itemPrice = 0;
for (Coffee s : myClub)
{
if (s.cName.equals(item))
{
itemPrice = s.cPrice;
}
}
System.out.println ("The price of "+item+" is "+itemPrice+".");
}
}
你的咖啡课:
public class Coffee
{
String cName;
int cPrice;
public Coffee (String cName, int cPrice)
{
this.cName = cName;
this.cPrice = cPrice;
}
}
答案 3 :(得分:0)
你应该在设定价格时设置coffeeType,你会得到正确的结果。
public class classyclass {
public static void main(String[] args) {
int num;
num = 0;
num++;
System.out.println(" blah blah blah " + num);
Coffee latte = new Coffee();
latte.coffeeType = "latte";
latte.price = 5;
Coffee capuccino = new Coffee();
capuccino.coffeeType = "capuccino";
capuccino.price = 11;
latte.beverage();
capuccino.beverage();
}
}
public class Coffee {
int price;
String coffeeType;
void beverage() {
if (this.coffeeType.equals("latte")) {
System.out.println("The price of latte is " + this.price);
}
else if (this.coffeeType.equals("capuccino")) {
System.out.println("The price of a cappuccino is " + this.price);
}
}
}
答案 4 :(得分:0)
在java中,string.equals("..")
运算符比较对象引用。要比较字符串,您应该使用{{1}}方法。