我是面向对象编程的新手,所以我在掌握一些基本概念时仍然有些困难。所以在这里我试图创建一个基本的库存程序来跟踪库存。每只股票都包含一些详细信息:公司名称、股票评级(AAA、AAa、Aaa 等)、购买价格和股票数量。该程序将要求用户通过命令行提示符输入这些详细信息。用户最多只能输入 12 只股票。如果用户输入股票两次,它会打印出一个错误。如果用户输入了两次股票,它也会打印出一条错误信息。
这是我到目前为止所做的:股票对象
public class Stock {
private String companyName;
private String stockRating;
private int price;
private int numberOfShares;
public String getCompanyName() {
return companyName;
}
public int getStockRating() {
return stockRating;
}
public String getPrice() {
return price;
}
public int getNumberOfShares() {
return numberOfShares;
}
public Stock(String companyName, String stockRating, int price, int numberOfShares) {
super();
this.companyName = companyName;
this.stockRating = stockRating;
this.price = price;
this.numberOfShares = numberOfShares;
}
现在,我正在尝试创建库存盘点程序
import java.util.*;
public class StockInvetory {
private static final int INVENTORY_SIZE = 12;
private Stock [] stocks;
public StockInvetory() {
stocks = new Stock [INVENTORY_SIZE];
}
private static void StockInventory() {
for (int i = 0; i<INVENTORY_SIZE; i++){
Scanner console = new Scanner(System.in);
System.out.println ("Stock's name:");
String stockName = console.next();
System.out.println ("Stock's rating");
String stockRating= console.next();
System.out.println ("Stock's price:");
int stockPrice = console.nextInt();
System.out.println ("Numbers of shares: ");
int numberShares= console.nextInt();
stocks [i]= new Stock(stockName, stockRatings, stockPrice, numberShares);
}
public static void main (String [] args){
StockInventory();
}
所以我的问题如下:
第一个库存对象程序应该没问题,我的问题是库存盘点程序。 有了这段代码,private Stock [] stocks,是否意味着库存盘点程序会将信息存储到一个数组中?如果是,我如何将与特定股票、公司名称、价格等相关的所有详细信息存储在一起。我是否必须创建一个多维数组才能跟踪所有细节?就像一行包含有关一只股票的所有详细信息,第二行包含有关另一只股票的详细信息。并确定用户是否输入了两次股票,是否使用“equalsIgnoreCase”进行比较?我知道我可能需要为库存创建另一种方法。
非常感谢您的协助。
最佳答案
读入名称、评级、价格和股票数量后,您需要调用 Stock 类的构造函数来创建该类的实例并将其分配给 stocks[] 数组中的下一个项目。
像这样:
stocks[0] = new Stock( stockName, stockRating, stockPrice, numberShares);
然后您需要将您用于从控制台读取的代码行,加上我创建新 Stock 对象的代码行放入一个循环中,以便您可以读取所有 12 只股票:
for( int i = 0; i < INVENTORY_SIZE; i++ )
{
System.out.println ("Stock's name:");
String stockName = console.next();
System.out.println ("Stock's rating");
String stockRating= console.next();
System.out.println ("Stock's price:");
int stockPrice = console.nextInt();
System.out.println ("Numbers of shares: ");
int numberShares= console.nextInt();
stocks[i] = new Stock( stockName, stockRating, stockPrice, numberShares);
}
现在,这并不完美,因为它要求用户始终输入一整套 12 只股票,因此您需要弄清楚如何让用户在完成后中止循环,并且您仍然需要添加所需的错误检查,以确保没有输入重复项,但它应该初始化您的各个对象并将每个对象分配给数组元素。
关于java - 面向对象的Java : Creating a stock inventory program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10859083/