首页 > 解决方案 > Java - 将对象数组存储为另一个对象的值并调用该值的字段

问题描述

我想将项目 i1 和 i2 作为数组存储在用户参数项目中。我想这部分还可以。

class item {
    int quty;
    String name;
    double nc;

    public item(String name, int quty, double nc) {
        this.quty = quty;
        this.name = name;
        this.nc = nc;
    }

   static item i1 = new item("I1", 10, 6.04);
   static item i2 = new item("I2", 14, 8.01);
}

class user {
    String name;
    double nc;
    item[] items; // store item objects as value of user

    public user(String name, double nc, item[] items) {
        this.name = name;
        this.nc = nc;
            this.items=items;
    }

   static user u1 = new user("Tenny", 10.18, new item[]{item.i1, item.i2}  ); // user stores two items
}

然后我想调用项目的名称。您可以通过 System.out.println(item.i1.name) 轻松调用项目名称,但我想调用用户 u1 拥有的项目名称。

        System.out.println("User has " + Arrays.toString((user.u1.items.name)));

上面没有这样做。怎么做?

标签: java

解决方案


您调用的方式不正确,因为 Items 是需要索引的数组类型。

user.u1.items[0].name

您可以使用以下代码打印所有用户项目的名称。

 for(item i:user.u1.items) { 
     System.out.println(i.name);  
  }

推荐阅读