我有一个带有实例变量的自定义“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;
}
目前,我遇到的问题是,在创建多个投资组合时,编辑一个投资组合中的股票数量时,它也会改变其他投资组合中的数量。我知道这是因为对股票的相同参考存储在两个投资组合中。
我想知道是否有一个实施,我可以拥有多个投资组合,其中每个投资组合中股票价值的变化都会发生变化,但我可以改变每个投资组合的股票数量。
非常感谢!
答案 0 :(得分:0)
一些面向对象的分析应该揭示所持有的数量不是Stock
本身的属性。它不是投资组合本身的一部分,因为不同的股票可能有不同的数量。我会从quantity
删除Stock
。
我会介绍一个Holding
类,其中包含Stock
属性和数量。我也会让Portfolio
班级有List<Holding>
。不同的Portfolio
可以有不同的Holding
个对象,每个对象可能会或可能不会引用具有不同数量的同一Stock
个对象。例如,这将允许您和我拥有不同数量的Google股票。