java - 面向对象的Java : Creating a stock inventory program

标签 java oop inventory stock

我是面向对象编程的新手,所以我在掌握一些基本概念时仍然有些困难。所以在这里我试图创建一个基本的库存程序来跟踪库存。每只股票都包含一些详细信息:公司名称、股票评级(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/

相关文章:

C++:关于指针和引用,什么时候使用它们?

json - Ansible 中的自定义动态库存脚本/插件

sql - 如何根据创建标识符和最大日期的两列选择行

mysql - 如果产品库存中剩下一件商品,Magento SQLSTATE 错误

java - JPA ManyToMany 在创建时不会插入到联接表中

java - 给定斐波那契方法/函数,实现它并使其高效

java - 限制 Jetty 上 Solr 的内存使用

java - 闪存套接字未正确读取 Java 服务器

javascript - 如何为数组创建方法作为javascript中对象的属性?

oop fortran : why my program does not choose the good subroutine?