Java 单个客户端中的多个产品(arrayList)

Java 单个客户端中的多个产品(arrayList),java,arraylist,Java,Arraylist,我被要求编写一个小型的在线销售应用程序 这在理论上听起来很简单(但对我来说简直是地狱)。我应该有一个arrayList,里面有大约5种产品,然后让客户购买1到5种产品,然后打印销售总额 public class Product { private String name; private double price; public Product(String name, double price) { this.name = name;

我被要求编写一个小型的在线销售应用程序

这在理论上听起来很简单(但对我来说简直是地狱)。我应该有一个arrayList,里面有大约5种产品,然后让客户购买1到5种产品,然后打印销售总额

public class Product {

    private String name;
    private double price;

    public Product(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    public String printInfo() {
        return "Product: " + name + " Cost: " + price;
    }
}
然后我有一个客户机类:

public class Cliente {

    private String name;
    private int numPedido;
    ArrayList<Producto> products = new ArrayList<Producto>();

    public void listBuilder() {
        Producto shirt = new Producto("Shirt", 30);
        Producto tshirt = new Producto("T-Shirt", 40);
        Producto sweater = new Producto("Sweater", 50);
    }

    public Cliente(String name, int numPedido) {
        this.name = name;
        this.numPedido = numPedido;
    }

    public Cliente() {
    }

    public String getName() {
        return name;
    }

    public int getNumPedido() {
        return (int) (Math.random() * 100);
    }

    public void addNewClient() {
        name = JOptionPane.showInputDialog("Nombre: ");
    }

    public String printInfo() {
        return "Nombre: " + name;
    }
}

您可以将一些
purchaseProduct
方法附加到每个
客户端

public void purchaseProduct(Product product) { this.products.add(product); }
然后,您实例化的每个
客户机(
Client Client=new Client(name,id);
)都可以使用
purchaseProduct
方法将
产品添加到其购物车中

我假设您正在使用某种用户输入方法(
Scanner
)。这样,您就可以读取用户所需的
产品
的输入,并相应地使用正确的
产品
调用该函数

顺便说一句,
listBuilder
函数对我来说没有什么意义(在编辑之后,很难理解
Admin
类应该是/代表什么)

编辑:您可能希望创建一个
ArrayList
,该列表将附加到您已经拥有的每个客户端。我觉得您很难决定将实际的
产品放置在哪里。您应该而不是将它们放在
客户机的
类中。
你应该考虑谁/在哪里使用它们。可能在
main
中,对吗?因此,只要先在那里实例化它们,
客户机就可以选择购买哪一个(通过我前面介绍的方法):


首先考虑一下正常情况,分析一下listBuilder的方法应该在哪里,以及如何使用arraylistYeah进行访问,我正在使用JOptionPane来实现这一点。但是,我应该在哪里创建产品阵列列表?我不知道您在哪里创建产品阵列列表,您可以同时添加
main
吗?或者以任何方式理解您希望如何使用这些类?哦,“listBuilder”应该是产品的arrayList。我现在没有什么主要内容,只有我刚刚发布的用于正确打印客户端名称的管理类测试。我正在考虑在这个管理类中创建产品的arrayList。不确定这样做是否正确。还是应该在产品类本身中完成?编辑:Admin类应该是某种控制类,在其中完成所有操作,添加客户机及其Cart应该在那里工作。大体上,我只允许执行程序本身。产品是否已修复?你只有三个?还是由用户决定存在哪些产品?是的,产品是固定的。我应该把它们放在arrayList里。顺便说一句,如果我让你很难帮我的话,我很抱歉。哈哈,这是我到目前为止唯一一个令人沮丧的编程时刻。
public void purchaseProduct(Product product) { this.products.add(product); }
client.purchaseProduct(product);