我是面向对象语言的新手,只是对向 ArrayList
. 我已经想出了一个解决办法,但我很困惑,因为我看到了另一个方法,我不明白使用。有人能给我解释一下第二种方法是怎么工作的吗?
我有两个课程,一个是关于商店里的一种商品:
public class Item {
String name;
double weight;
double price;
public Item(String itemName,double itemWeight, double itemPrice){
this.name = itemName;
this.weight = itemWeight;
this.price = itemPrice;
}
public String toString(){
return(name + " has a weight of " + weight + " and a price of " + price);
}
}
还有一个商店里的物品列表:
import java.util.ArrayList;
public class ItemList{
String itemName;
ArrayList<Item> itemList = new ArrayList<>();
public ItemList(String name) {
itemName = name;
}
public void addItem(Item item1){
itemList.add(item1);
}
public void printItems(){
for(int i=0; i < itemList.size(); i++){
System.out.println(itemList.get(i));
}
}
}
然后我有一个main方法,将项目添加到列表中,然后打印它们:
public class ShopMain {
public static void main (String[] args){
ItemList myList = new ItemList("Fruit");
Item apple = new Item("Apple", 100, 60);
myList.addItem(apple);
Item banana = new Item("Banana", 118, 50);
myList.addItem(banana);
myList.printItems();
}
}
但是,我看到人们使用的第二种方法对我不适用,格式如下:
public class HopefulShopMain{
public static void main (String[] args){
ItemList myList = new ItemList("Fruit");
myList.addItem("Apple", 100, 60);
myList.addItem("Banana", 118, 50);
}
}
1条答案
按热度按时间0yg35tkg1#
你的
addItem
方法需要item
,所以第二个代码段不起作用,至少在ItemList
保持现状。您当然可以将其添加到您的类中:这里有一个论点
ItemList
这样就隐藏了Item
从任何使用ItemList
-这可能合适,也可能不合适,这取决于您打算如何使用这两个类。