java - 如何获取获取新对象并将其添加到 ArrayList 的方法?
问题描述
我最近才开始学习代码,如果这是微不足道的,请原谅我,但我似乎无法弄清楚,这是一个简单的课堂作业。在这里,我的教授给了我们这个,并告诉我自己创建结帐课程。我的问题是如何enterItem
在结帐类中创建将“rice”和“baguette”对象添加到 ArrayList 中的方法?
public static void main(String[] args) {
Checkout checkout = new Checkout();
checkout.enterItem(new Rice("Basmati Rice", 2.25, 399));
checkout.enterItem(new Baguette("Wheat Baguette", 105));
这有点像我尝试过的,但它不起作用,我不确定为什么或如何使它起作用
public class Checkout {
ArrayList items = new ArrayList();
public void enterItem(){
items.add()
}
}
解决方案
checkout.enterItem(new Rice("Basmati Rice", 2.25, 399));
该代码正在调用该enterItem
方法并将 aRice
作为参数传递。
public void enterItem(){
items.add()
}
该enterItem
方法不接受任何参数,因此不起作用。你可以这样做...
public void enterItem(Rice rice){
items.add(rice);
}
这适用于Rice
,但不适用于Baguette
(除非Baguette
extends Rice
)。您可以添加 2 个版本enterItem
:
public void enterItem(Rice rice){
items.add(rice);
}
public void enterItem(Baguette bag){
items.add(bag);
}
如果Rice
并Bagquette
在继承/实现层次结构中共享它们之上的某些内容,则可以使用以下方法:
public class Baguette implements Edible {}
public class Rice implements Edible {}
public void enterItem(Edible edible){
items.add(edible);
}
推荐阅读
- javascript - CSS 媒体查询在 chrome 和 Mozilla 中无法按预期在特定范围内工作,并且未在其他浏览器中进行测试
- java - SQLite 数据库不保存数据为什么它不工作
- python - python-ldap -- 在 Active Directory 中创建用户 -- 问题 2003 (BAD_ATT_SYNTAX) cn 和 DN
- python - 为什么在为我的误差线定义“capsize”时会得到一个无效的 RGBA 参数 ValueError?
- javascript - 实现顺序回调执行
- c# - 如何检索 mdb 文件的位置并将其用作 c# 中的驱动程序
- javascript - 如何“访问对象 javascript”
- racket - 数据/集合中的球拍序列与内置序列
- tensorflow - How to run tensorflow model on Coral CPU
- ruby-on-rails-5 - 更新公用文件夹文件但不想在部署后重置