【发布时间】:2021-03-19 05:38:01
【问题描述】:
我是面向对象语言的新手,只是对向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);
}
}
【问题讨论】:
-
向
ItemList类添加一个新函数:public void addItem(String itemName,double itemWeight, double itemPrice) { itemList.add(new Item (itemName, itemWeight, itemPrice));}