我对面向对象编程非常陌生,我想知道是否有可能将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();
}
}
1条答案
按热度按时间bt1cpqcv1#
想知道是否可以将int传递给另一个类所包含的类
对。这可以在不同的级别(构造函数或方法)以不同的方式完成。
在您的示例中,可以将itemlistid传递到项的构造函数中:
然后您的item类可以将该值保存在字段中,就像它在构造函数中获取的其他值一样。
或者,你可以通过整个考试
ItemList
这样它就可以引用ItemList
上面有或者你可以
Item
内部的(非静态)嵌套类ItemList
,因此它可以直接引用字段。这在您的情况下可能是合适的,因为看起来您只期望Item
将由ItemList
类本身。