Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayList.add:它是如何工作的?_Java_Eclipse_Arraylist - Fatal编程技术网

Java ArrayList.add:它是如何工作的?

Java ArrayList.add:它是如何工作的?,java,eclipse,arraylist,Java,Eclipse,Arraylist,我创建了这个小程序 public static void main(String[] args) { Person P = new Person("will", "Deverson", "15/06/1987", "Bonifico"); Product PC = new Product("Asus VivoBook", "AVB2562", 799.99); Product ROUTER = new Product("TP-Link X3", "X3-201", 142

我创建了这个小程序

public static void main(String[] args) {
    Person P = new Person("will", "Deverson", "15/06/1987", "Bonifico");
    Product PC = new Product("Asus VivoBook", "AVB2562", 799.99);
    Product ROUTER = new Product("TP-Link X3", "X3-201", 142.99);
    Product ADAPTER = new Product("Aukey Type-C Adapter", "C-778", 11.20);

    ArrayList<Product> listProduct = new ArrayList<Product>();
    listProduct.add(PC);
    listProduct.add(ROUTER);
    listProduct.add(ADAPTER);

    //numero elementi nella lista prodotti
    int nProducts = listProduct.size();
    System.out.println("Il tuo carrello contiene " +nProducts +" elementi: ");
    for (Product p : listProduct)
        System.out.println("> name: " +p.getName() +"   model: " +p.getModel() +"   cost: " +p.getCost() +"€.\n");

    //calcolo del totale
    double total = 0;
    for (Product p : listProduct){
        total = total + p.getCost();;
    }
为什么他还要在名称字段中打印id模型?为什么我要把同一个物体放三次

这是您让我发布的“Product”类:)我认为这是正确的,我唯一的疑问是在变量声明中使用“this”

public class Product {
    static String name;
    static String model;
    static double cost;

    public Product(String n, String m, double d) {
        name = m;
        model = m;
        cost = d;
    }

    public String getName(){
        return name;
    }

    public String getModel(){
        return model;
    }

    public double getCost(){
        return cost;
    }
}

看起来您的“产品”类有问题

试试这个:

public class Product {

    private String name, model;
    private Double price;

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

    public String getName() {
        return name;
    }

    public String getModel() {
        return model;
    }

    public Double getCost() {
        return price;
    }
}
“Main”类看起来不错

以及输出:

Il tuo carrello contiene 3 elementi: 

> name: Asus VivoBook   model: AVB2562   cost: 799.99€.

> name: TP-Link X3   model: X3-201   cost: 142.99€.

> name: Aukey Type-C Adapter   model: C-778   cost: 11.2€.

您可以更改它:
total=total+p.getCost()到此:
total+=p.getCost()
这与您编写的内容相同,但更简洁:-]

可能是因为
Product
的构造函数错误地将
name
参数分配给
name
model
字段。您可以在问题中添加
Product
类吗?添加产品类哦,
产品
课程将会很有趣。如果它曾经被张贴。谢谢你的帮助!我解决了!这都是我在“静态”变量语句中犯的愚蠢错误的错!谢谢你的建议,我不记得那个语法;)@Stefano好吧,当我写这篇文章时,你的问题中还没有类产品:)是的,我知道:)我发现你的解决方案中有我愚蠢的错误:D谢谢!
Il tuo carrello contiene 3 elementi: 

> name: Asus VivoBook   model: AVB2562   cost: 799.99€.

> name: TP-Link X3   model: X3-201   cost: 142.99€.

> name: Aukey Type-C Adapter   model: C-778   cost: 11.2€.