【发布时间】:2021-03-20 03:54:03
【问题描述】:
我是面向对象编程的新手,想知道是否可以将 int 传递给另一个类包含的类。 我的代码可以编译,但是当我在 main 中运行 printList 时,itemID 永远不会被打印出来。
这是我的 ArrayList 类
import java.util.ArrayList;
public class ItemList{
int itemListID
String itemName;
ArrayList<Item> itemList = new ArrayList<>();
public ItemList(String name, int listID) {
itemName = name;
itemListID = listID
}
public void addItem(String name, double weight, double price){
itemList.add(new Item(name,weight,price));
}
public int getItemListID(){
return itemListID;
}
public void printItems(){
for(int i=0; i < itemList.size(); i++){
System.out.println(itemList.get(i));
}
}
}
这是 arrayList 中包含的项目类别
public class Item {
String name;
double weight;
double price;
int itemListID;
public Item(String itemName,double itemWeight, double itemPrice){
this.name = itemName;
this.weight = itemWeight;
this.price = itemPrice;
}
public int setItemListID(){
itemListID = ItemList.getItemListID();
}
public String toString(){
return(name + " has a weight of " + weight + " and a price of " + price + "item is in itemlist"
+ itemListID);
}
}
这里是主要的
public class HopefulShopMain{
public static void main (String[] args){
ItemList myList = new ItemList("Fruit",1);
myList.addItem("Apple", 100, 60);
myList.addItem("Banana", 118, 50);
myList.printItems();
}
}
【问题讨论】:
-
+int itemListID???只是itemListID,它也曾经 setValue 吗? -
向我们展示更多代码。我们需要看到你创建一个
ItemList的实例,添加一些带有addItem()的条目,然后调用printItems()。 -
我认为这里缺少一些代码。你能把主要的也加进去吗?
-
你的
setItemListID()甚至不应该编译。事实上,它似乎是在错误的类。我希望看到(在课堂上ItemList,而不是课堂上Item):public void setItemListID(int ID) { itemListID = ID; }。 -
您的代码,如图所示,仍然不应该编译。在
ItemList.getItemListID();,在ItemList类中没有名为getItemListID()的静态成员。不过,不应该……见我之前的评论。