购物车中的java数组分配混乱

购物车中的java数组分配混乱,java,Java,我在研究其他东西时遇到了这个java购物车。我对下面创建的数组感到困惑: public class CartEntry { public float Price; public int Quantity; } public class CartContents { public CartEntry[] items; } public class Order { private CartContents cart; private float salesTax; pu

我在研究其他东西时遇到了这个java购物车。我对下面创建的数组感到困惑:

public class CartEntry
{
  public float Price;
  public int Quantity;
}

public class CartContents
{
  public CartEntry[] items;
}

public class Order
{
  private CartContents cart;
  private float salesTax;

  public Order(CartContents cart, float salesTax)
  {
    this.cart = cart;
    this.salesTax = salesTax;
  }

  public float OrderTotal()
  {
    float cartTotal = 0;
    for (int i = 0; i < cart.items.Length; i++)
    {
      cartTotal += cart.items[i].Price * cart.items[i].Quantity;
    }
    cartTotal += cartTotal*salesTax;
    return cartTotal;
  }
}

“项目”是什么意思?它是指向Carentry数组的引用吗?另外,我知道这是一个不完整的程序,我一直在试图找出如何将它转换成代码,我可以实际调用并查看结果。我知道我需要一个main方法并在数组中放置一些项。我的方向对吗?谢谢你的帮助

items是对Carentry数组中第一个项的内存位置的引用。恐怕我不得不同意@tracticalcoder的观点,用浮点数来表示货币不是一个好主意。您最好创建自己的Money类,将美元和美分分为两个不同的整数,并重载运算符。

使用float表示货币的人应该被枪杀;)@战术编码员:以及使用公共字段创建公共类的人:)将其视为没有getter和setter的carentry[]属性@战术编码员:同意,但不使用float将意味着另外两个字段(货币和小数位数)@BigMike:
int priceInCents@BigMike。。有一个叫做
BigDecimal
的类最适合这个目的。+1:对于你所说的关于货币类的一切,我完全同意。1货币类不是一个好主意。这可以很容易地用一个整数来表示。美元和美分不需要单独的整数,也不需要额外的代码使计算复杂化。@ErickRobertson如果你使用其他货币,你就注定没有货币类了。有0、2、3和4位小数的货币,而不仅仅是欧元和美元,这应该是紧密耦合的一个例子,所以我想我应该选择另一段代码来尝试解决这个问题。不过,我能理解为什么它是不好的耦合。@BigMike:当我开始使用其他货币时,我会解决这个问题。因为我使用eclipse,所以当我更改变量时,它将显示所有中断的地方。然后我会更新它,使用解决我问题的类。在那之前,我会有一个很好的简单优雅的解决方案,可以使用美分。
    public CartEntry[] items;