#java #arraylist
#java #arraylist
Вопрос:
Я только недавно начал изучать код, поэтому простите меня, если это тривиально, но я, кажется, не могу понять, это простое назначение для класса. Здесь мой профессор дал нам это и сказал мне создать класс проверки самостоятельно. Мой вопрос в том, как я мог бы создать enterItem
метод в классе checkout для добавления объектов «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()
}
}
Комментарии:
1. docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
2. Производите свои продукты из общего
Food
интерфейса или абстрактного класса и используйте метод следующим образом:public void enterItem(Food food) {items.add(food);}
3. Должен ли список массивов в
Checkout
классе быть необработанным в вашем назначении?4. «Должен ли список массивов в классе проверки быть необработанным в вашем назначении?» — @AlexRudenko Что для вас значит, что класс должен быть «сырым»?
Ответ №1:
checkout.enterItem(new Rice("Basmati Rice", 2.25, 399));
Этот код вызывает enterItem
метод и передает a Rice
в качестве аргумента.
public void enterItem(){
items.add()
}
enterItem
Метод не принимает никаких аргументов, так что это не сработает. Вы могли бы сделать это…
public void enterItem(Rice rice){
items.add(rice);
}
Это будет работать для Rice
, но не для Baguette
(если Baguette
не расширяется 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);
}