【问题标题】:How to Access elemental of Object stored into ArrayList through other Class如何通过其他类访问存储到 ArrayList 中的对象的元素
【发布时间】:2017-06-08 15:11:13
【问题描述】:

文件 1

import java.util.ArrayList;
public class ShoppingCart{

  ArrayList<Items> itemList = new ArrayList<Items>();
  private static int budget;
  private static int limitWeight;
  private static int cartWeight = 0;
  private static final int tax = 10;
  private int itemCount;

  ShoppingCart(int budget, int limitWeight){
    this.budget = budget;
    this.cartWeight = limitWeight;
  }

  public ArrayList<Items> returnItems(){
    return itemList;
  }
  public int getCartWeight(){
    return cartWeight;
  }

  public int getBudget(){
    return budget;
  }
  public int getTax(){
    return tax;
  }
  public int addWeight(int itemWeight){
    return cartWeight+=itemWeight;
  }

  public boolean isOverweight(){
    if(this.cartWeight > limitWeight){
      return true;
    }else{
      return false;
    }
  }

  public  int weightTillOverweight(){
    return limitWeight-this.cartWeight;
  }

  public void heviestItem(){

  }

  public void addItem(Items i){
    this.itemList.add(i);
  }


  public static class Items{
    private final String itemName;
    private final int itemPrice;
    private final int itemWeight;

    public Items(String itemName, int itemPrice, int itemWeight){
      this.itemName = itemName;
      this.itemPrice = itemPrice;
      this.itemWeight = itemWeight;
    }
    public String getItemName() {
      return this.itemName;
    }
    public int getItemPrice() {
      return this.itemPrice;
    }
    public int getItemWeight() {
      return this.itemWeight;
    }
  }
}

文件 2

public class TestShoppingCart{
  public static void main(String[] args ){


    testAddItem();
  }
  private static ShoppingCart makeCart() {
    return new ShoppingCart(100, 50);
  }

  public static void testAddItem(){
    ShoppingCart s0 = makeCart();
    s0.addItem(new ShoppingCart.Items("name",2, 1));
    s0.addItem(new ShoppingCart.Items("names",3, 1));

  }

}

我的代码有一个片段,我正在尝试通过 addItem 访问我刚刚添加到我的数组列表中的变量。我试图打印我使用 getmethod 的变量,但我只能获取数组的引用号。有人可以解释一下如何在 ArrayList 中获取元素吗?

谢谢!抱歉英语不好!

【问题讨论】:

  • 类名应该是单数,除非一个实例代表多个项目。
  • 寻找s0.returnItems().get(0)?
  • shmosel,我有 ShoppingCart、TestShoppingCart 和 Items 类。
  • System.out.print(s0.returnItems().get(0));给我地址而不是价值
  • 然后显示您尝试过的内容以及遇到的错误。如果您不告诉我们问题,我们将无法帮助您。

标签: java class arraylist methods


【解决方案1】:

为

添加getter方法
private final String itemName;
private final int itemPrice;
private final int itemWeight;

这样:

public String getItemName() {
    return this.itemName;
}

然后:

for(int i = 0; i < s0.returnItems().size(); i++){
    System.out.println(s0.returnItems().get(i).getItemName());
    System.out.println(s0.returnItems().get(i).getItemPrice());
    System.out.println(s0.returnItems().get(i).getItemWeight());
}

【讨论】:

  • 我的 Item 类中有 get 方法,就像你做的那样。我应该在哪里使用 for 循环?谢谢!
  • 它说找不到符号项目
  • 请立即查看。
  • 作为一个后续问题,就像我创建了一个创建购物车的方法一样,我可以创建一个来创建一堆项目吗?
  • 当然。以同样的方式。我认为类名Item会比Items好。
猜你喜欢
  • 2015-01-05
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 2012-12-14
相关资源
最近更新 更多