我想调用stock.setPrice()方法,但我不知道怎么做

时间:2014-05-03 19:53:30

标签: java tostring stock

我需要设定几种股票的当前价格,但我不知道如何。 我知道我应该做类似stocksymbol.setPrice()的事情,但它不起作用。 然后我需要 “通过传递每个Stock变量来打印每个股票的信息 的System.out.println()。这将自动调用股票的toString()方法。“ 而且我不确定它将如何调用toString。请帮忙吗?

public class Stock {

    private String symbol;
    private String name;
    private double previousClosingPrice;
    private double currentPrice;

    public void Stock(String symbol, String name, double previousClosingPrice {
        this.symbol= symbol;
        this.name =name;
        this.previousClosingPrice = previousClosingPrice;
    }

    public void setPrice(String symbol,double a) {
        this.symbol=symbol;
        currentPrice=a;
    }

    public double getChangePercent() {
        double percentageDiff=100 * (currentPrice - previousClosingPrice) / previousClosingPrice;
        return percentageDiff;
    }

    public String toString() {
        return symbol+" "+name+" "+previousClosingPrice+" "+currentPrice;
    }


    public void main(String[] args) {
        // TODO Auto-generated method stub

        Stock("JAVA","Sun Microsystems, Inc.",4.5);
        Stock("GOOG","Google Inc.",1007.95);
        Stock("AAPL","Apple Inc.",512.49);

        setPrice("JAVA",4.35);

        System.out.println();
    }
}

1 个答案:

答案 0 :(得分:0)

那里有很多东西要修复。

您需要在Stock个实例上调用所有非静态方法。首先,您需要创建一个。您的构造函数已损坏:一个应该声明为public Stock而不是public void Stock - 第一个是构造函数,后者是void方法(误导性地)称为Stock

完成后,您可以创建一个实例:

Stock s = new Stock(...arguments here...);

并用它来设定价格:

s.setPrice(5.12);

打印s会自动调用“toString

System.out.println(s);