Java Buy方法

时间:2014-02-09 15:22:55

标签: java casting

这是我的家庭作业。 我正在尝试编写一种方法'买',允许以给定价格购买一些股票。该方法有两个参数:作为int的多个份额,以及作为double的每股价格。 例如:

Stock myStock = new Stock("FCS");
myStock.buy(20, 3.50); // buys 20 shares at $3.50
// myStock now has 20 shares at total cost $70.00
myStock.buy(10, 2.00); // buys 10 shares at $2.00
// myStock now has 30 shares at total cost $90.00

我的代码:

public static void buy(int numBuyShares, double priceBuyShares )
{
    double tempTotalCost = ((double)numBuyShares * priceBuyShares);
  1. 如果我想将Integer乘以Double,我该如何编写正确的代码?我这样做是正确的吗?

  2. 我想累积成本和份额,那么我该怎么写呢?因为我需要使用sell方法的份额和费用。

  3. 谢谢大家。现在我需要写一个方法卖出,允许一定股票的股票以给定的价格出售。该方法有两个参数:作为int的多个份额,以及作为double的每股价格。该方法返回一个布尔值,以指示销售是否成功。例如:

     // myStock now has 30 shares at total cost $90.00
    boolean success = myStock.sell(5, 4.00);
    // sells 5 shares at $4.00 successfully
    // myStock now has 25 shares at total cost $70.00
    success = myStock.sell(2, 5.00);
    // sells 2 shares at $5.00 successfully
    // myStock now has 23 shares at total cost $60.00
    

    1.。)我如何使用以前的股票减去新价格和股票方法?

2 个答案:

答案 0 :(得分:0)

  1. 不需要将numShares显式转换为double。隐式自动装箱会处理它,因为已经有双变量priceShares - 将使用双重算术。

  2. 要保存库存的数量和价格,您必须使用某种结构。我想也许HashMap。但是使用double作为关键字真的不好,我会创建一些Stock类。因此HashMap的关键是Stock包含价格的对象和int是您拥有的所述股票的数量。

    HashMap<Stock, int> stocks = new HashMap<Stock, int>();

答案 1 :(得分:0)

  1. 将double和整数相乘的方法可以正常工作。

  2. 要累积总股数,您需要在Stock类中使用一个变量来跟踪。例如:

    public class Stock{
        private int noOfShares = 0;
    }
    

    然后在购买方法中,您需要添加一行来添加刚购买的股票数量:

    noOfShares += numBuyShares;
    

    遵循封装原则,要从类外部访问此变量,您需要一个get方法,即:

    public int getNoOfShares(){
        return noOfShares;
    }