对象(股票)的多个ArrayLists(Portfolios)允许股票在不同的投资组合中具有不同的数量

时间:2018-03-13 23:12:04

标签: java arraylist

我有一个带有实例变量的自定义“Stock”类:

public class Stock
{
    // Instance variables
    private String company;
    private double value;
    private int quantity;
}

和包含实例变量的“Portfolio”类:

public class Portfolio
{
    // Instance variables
    private ArrayList<Stock> portfolio;
    private String name;
}

目前,我遇到的问题是,在创建多个投资组合时,编辑一个投资组合中的股票数量时,它也会改变其他投资组合中的数量。我知道这是因为对股票的相同参考存储在两个投资组合中。

我想知道是否有一个实施,我可以拥有多个投资组合,其中每个投资组合中股票价值的变化都会发生变化,但我可以改变每个投资组合的股票数量。

非常感谢!

1 个答案:

答案 0 :(得分:0)

一些面向对象的分析应该揭示所持有的数量不是Stock本身的属性。它不是投资组合本身的一部分,因为不同的股票可能有不同的数量。我会从quantity删除Stock

我会介绍一个Holding类,其中包含Stock属性和数量。我也会让Portfolio班级有List<Holding>。不同的Portfolio可以有不同的Holding个对象,每个对象可能会或可能不会引用具有不同数量的同一Stock个对象。例如,这将允许您和我拥有不同数量的Google股票。