无法理解以下内容:有 2 个类 - “Item”,其中设置属性(名称、价格)和构造函数,以及主要的“Store”。在最后一个 - Arraylist 中,它根据用户输入填充项目。该代码有效。
问题是:除了“ArrayList listOfItems=new ArrayList();”之外,有没有办法将所有内容都放在主类中写入方法“addItem()”,然后调用该方法?我不知道怎么做。尝试了很多。
谢谢
package store;
import java.util.ArrayList;
import java.util.Scanner;
public class Store extends Item {
public static void main(String[] args) {
ArrayList<Item> listOfItems=new ArrayList<Item>();
for(int i=0;i<2;i++){
System.out.println("ENTER NAME");
Scanner addName=new Scanner (System.in);
String name=(addName.nextLine());
System.out.println("ENTER PRICE");
Scanner addPrice=new Scanner (System.in);
double price=(addPrice.nextDouble());
listOfItems.add(new Item(name,price));
}
for(Item list:listOfItems){
System.out.println("NAME "+list.getName()+", PRICE "+list.getPrice());
}
}
}
最佳答案
这对你有用:
package store;
import java.util.ArrayList;
import java.util.Scanner;
public class Store {
private static class Item {
private String name;
private double price;
public Item(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
}
public static void main(String[] args) {
ArrayList<Item> listOfItems = new ArrayList<Item>();
addItem(listOfItems);
}
private static void addItem(ArrayList<Item> listOfItems) {
for (int i = 0; i < 2; i++) {
System.out.println("ENTER NAME");
Scanner addName = new Scanner(System.in);
String name = (addName.nextLine());
System.out.println("ENTER PRICE");
Scanner addPrice = new Scanner(System.in);
double price = (addPrice.nextDouble());
listOfItems.add(new Item(name, price));
}
for (Item list : listOfItems) {
System.out.println("NAME " + list.getName() + ", PRICE " + list.getPrice());
}
}
}
我单独定义了类Item
以使其能够编译。我还从商店中删除了 extends Item
,因为不需要它。
关于java - 使用用户输入将对象添加到 ArrayList 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660118/