【发布时间】:2015-01-29 22:05:15
【问题描述】:
我有两个班级,Pizza 和 PizzaTopping。在Pizza 中是一个ArrayList,它应该存储字符串(披萨配料)。我正在尝试从PizzaTopping 类中的ham 方法向数组中添加一个元素。但是,当我打印列表时,它显示为空。为什么?
这是PizzaTopping:
public class PizzaTopping {
Pizza p = new Pizza();
public void ham() {
double cost = 1;
System.out.println("im in ham");
p.addToPizza("ham");
p.setCost(p.getCost() + cost);
}
}
这是我的披萨课:
import java.util.ArrayList;
import java.util.Arrays;
public class Pizza {
private double cost;
ArrayList<String> pizza = new ArrayList<String>();
public double getCost() {
return cost;
}
public void setCost(double cost) {
this.cost = cost;
}
public void addToPizza(String x) {
System.out.println("im in add");
pizza.add(x);
}
public static void main(String [] args) {
//scanner to add topping
PizzaTopping pt = new PizzaTopping();
Pizza p = new Pizza();
pt.ham();
System.out.println(Arrays.toString(p.pizza.toArray()));
}
}
【问题讨论】:
-
'任何想法我做错了什么?' - 没有提到意大利辣香肠。
-
你的班级协会搞砸了。
PizzaTopping不应包含Pizza的引用。应该反过来。此外,您应该确保PizzaTopping不在Pizza对象之间共享。