如何通过其他类

时间:2017-01-23 23:46:24

标签: java class arraylist methods

档案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访问我刚刚添加到我的arraylist中的变量。我试图打印我使用getmethod的变量,但我只能得到数组的引用号。有人可以解释一下如何在ArrayList中获取Element吗?

谢谢!对不起的英语提前抱歉!

1 个答案:

答案 0 :(得分:0)

添加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());
}