我是靠谱客的博主 体贴帽子,最近开发中收集的这篇文章主要介绍java抽象类数组_java - 存储并打印存储在抽象类的子类的对象数组中的值 - SO中文参考 - www.soinside.com...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我还在学习Java,所以请多多包涵。

建立先前的工作。因此,我有一个抽象的Stock类,其中包含ETF类和Dividend类,它们都扩展了Stock类。 ETF和股息从股票中覆盖了calculatePrice。在另一个StockManager类中,我可以输入一些信息,例如股票名称,股价以及ETF值或股息。以前,我将这些输入存储到对象数组中

Stock [] stk =新股票[STOCKLIMIT]

现在,由于Stock是一个抽象类,所以我不能再这样做了。如何存储这些值?或打印出来?

此外,您可以在StockManager中添加,删除,打印或查找库存的总成本。

删除了一些不需要的东西只需要添加,打印和总成本方面的帮助

StockManager类public class StockManager

{

Scanner stdin = new Scanner(System.in);

final int STOCKLIMIT = 6;

int numberOfStocks = 0;

Stock[] stk = new Stock[STOCKLIMIT]; //before stock was abstract

String name;

Double namePrice;

int etfDividendVal;

public void run()

{

String command = stdin.next();

while (!command.equalsIgnoreCase("Q"))

{

if (command.equalsIgnoreCase("A"))

{

else

{

String commandTwo = stdin.next(); //either e for etf or d for dividend

if (commandTwo.equalsIgnoreCase("E"))

{

name = stdin.next();

namePrice = stdin.nextDouble();

etfDividendVal = stdin.nextInt();

//stk[numberOfStocks] = new Stock(name, namePrice); //object array when stock wasn't abstract

//store name, namePrice, and etfDividendVal somewhere now that stock is abstract

numberOfStocks++;

}

else if (commandTwo.equalsIgnoreCase("D"))

{

name = stdin.next();

namePrice = stdin.nextDouble();

etfDividendVal = stdin.nextInt();

//stk[numberOfStocks] = new Stock(name, namePrice);

//where to store name, namePrice, and etfDividendVal somewhere now that stock is abstract

Stock stk = new Dividend();

numberOfStocks++;

}

}

}

}

else if (command.equalsIgnoreCase("R")) //remove a stock

{

else

{

name = stdin.next();

namePrice = stdin.nextDouble();

for (int i = 0; i < numberOfStocks; i++)

{

if (stk[i].getTicker().equals(name))

{

for(int z = i; z < numberOfStocks; z++)

{

if (z + 1 == numberOfStocks)

stk[z] = null;

else

stk[z] = stk[z+1];

}

numberOfStocks--;

}

}

}

}

else if (command.equalsIgnoreCase("P"))

{

else

{

// print stock name, price, and etf/divident value

}

}

}

else if (command.equalsIgnoreCase("C"))

{

else

{

//print the total cost

}

}

}

}

}

抽象股票类abstract public class Stock

{

protected String commandTwo;

protected String ticker;

protected Double price;

protected int etfDividendVal;

public Stock()

// default constructor

public Stock(String commandTwo, String ticker, Double price,

int etfDividendVal)

{

this.commandTwo = commandTwo;

this.ticker = ticker;

this.price = price;

this.etfDividendVal = etfDividendVal;

}

public String getTicker()

{

return ticker;

}

public String setTicker(String name)

{

ticker = name;

return ticker;

}

public Double getPrice()

{

return price;

}

public Double setPrice(Double namePrice)

{

price = namePrice;

return price;

}

@Override

public String toString()

{

return this.ticker + " " + this.price + "t";

}

public abstract double calculatePrice();

}

ETF类public class ETF extends Stock

{

public float numberOfStocks;

@Override

public double calculatePrice()

{

return (price * numberOfStocks);

}

}

股息类别public class Dividend extends Stock

{

public float yieldPercentage;

@Override

public double calculatePrice()

{

return (price * yieldPercentage);

}

}

应该看起来像这样Pick an option: A-Add R-Remove P-Print C-Total cost Q-Quit

A

E

AMD

30.45

10

Pick an option: A-Add R-Remove P-Print C-Total cost Q-Quit

A

D

FXAIX

100

3

Pick an option: A-Add R-Remove P-Print C-Total cost Q-Quit

P

AMD 30.45 10.0

FXAIX 100.0 0.03

Pick an option: A-Add R-Remove P-Print C-Total cost Q-Quit

C

The total cost is: 307.4999999329448

最后

以上就是体贴帽子为你收集整理的java抽象类数组_java - 存储并打印存储在抽象类的子类的对象数组中的值 - SO中文参考 - www.soinside.com...的全部内容,希望文章能够帮你解决java抽象类数组_java - 存储并打印存储在抽象类的子类的对象数组中的值 - SO中文参考 - www.soinside.com...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部