面向对象Java:创建库存计划

面向对象Java:创建库存计划,java,oop,inventory,stock,Java,Oop,Inventory,Stock,我对面向对象编程相当陌生,所以我在掌握一些基本概念方面仍然有一些困难。所以在这里,我试图创建一个基本的库存计划来跟踪库存。每只股票都包含两个详细信息:公司名称、股票评级(AAA、AAA、AAA等)、购买价格和股票数量。程序将要求用户通过命令行提示符输入这些详细信息。用户最多只能输入12只股票。如果用户输入股票两次,它将打印出一个错误。如果用户两次输入一只股票,它也会打印一条错误消息 以下是我到目前为止所做的:Stock对象 public class Stock { private Strin

我对面向对象编程相当陌生,所以我在掌握一些基本概念方面仍然有一些困难。所以在这里,我试图创建一个基本的库存计划来跟踪库存。每只股票都包含两个详细信息:公司名称、股票评级(AAA、AAA、AAA等)、购买价格和股票数量。程序将要求用户通过命令行提示符输入这些详细信息。用户最多只能输入12只股票。如果用户输入股票两次,它将打印出一个错误。如果用户两次输入一只股票,它也会打印一条错误消息

以下是我到目前为止所做的:Stock对象

 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();



}
import java.util.*;
公营证券投资{
私有静态最终整数库存大小=12;
私人股[]股;
公共证券投资{
库存=新库存[库存大小];
}
私有静态无效库存(){
对于(int i=0;i
私人库存[]库存,这是否意味着库存计划
是否将信息存储到数组中?如果是,如何存储所有
与特定股票、公司名称、价格等相关的详细信息
一起

您的数组就像股票的
列表
。但仅仅因为它只有一个对象,并不意味着它只包含一条数据。它可以保存字符串、整数和其他用户定义的数据类型。因此,您可以在
股票
对象中存储与股票相关的数据

public class Stock {

private String companyName;
private String stockRating;
private int price;
private int numberOfShares;
这些都存储在每个Stock对象中,可以通过您定义的getter方法进行访问

int stockdata=stocks[4].getPrice();

但是,要初始化
Stock
数组,需要为每个区域创建一个新的
Stock
对象,如下所示:

for(int i = 0; i < INVENTORY_SIZE; i++) {
    stocks[i] = new Stock(foo, bar, lorem, ipsum);
}
私人库存[]库存,这是否意味着库存计划 是否将信息存储到数组中?如果是,如何存储所有 与特定股票、公司名称、价格等相关的详细信息 一起

您的数组就像股票的
列表
。但仅仅因为它只有一个对象,并不意味着它只包含一条数据。它可以保存字符串、整数和其他用户定义的数据类型。因此,您可以在
股票
对象中存储与股票相关的数据

public class Stock {

private String companyName;
private String stockRating;
private int price;
private int numberOfShares;
这些都存储在每个Stock对象中,可以通过您定义的getter方法进行访问

int stockdata=stocks[4].getPrice();

但是,要初始化
Stock
数组,需要为每个区域创建一个新的
Stock
对象,如下所示:

for(int i = 0; i < INVENTORY_SIZE; i++) {
    stocks[i] = new Stock(foo, bar, lorem, ipsum);
}

读入名称、评级、价格和共享计数后,需要调用类Stock的构造函数来创建类的实例,并将其分配给stocks[]数组中的下一项

像这样:

stocks[0] = new Stock( stockName, stockRating, stockPrice, numberShares);
然后,您需要将用于从控制台读取的代码行,以及创建新股票对象的我的代码行放入一个循环中,以便您可以读取所有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);
}
for(int i=0;i

现在,这并不完美,因为它将要求用户始终输入12个库存的完整集合,因此您需要找出如何让用户在完成后退出循环,并且您仍然需要添加所需的错误检查,以确保没有输入重复项,但它应该初始化您的单个对象并分配eachh一个到数组元素。

读入名称、评级、价格和共享计数后,需要调用类Stock上的构造函数来创建类的实例,并将其分配到stocks[]数组中的下一项

像这样:

stocks[0] = new Stock( stockName, stockRating, stockPrice, numberShares);
然后,您需要将用于从控制台读取的代码行,以及创建新股票对象的我的代码行放入一个循环中,以便您可以读取所有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);
}
for(int i=0;i

现在,这并不完美,因为它将要求用户始终输入12个库存的完整集合,因此您需要找出如何让用户在完成后退出循环,并且您仍然需要添加所需的错误检查,以确保没有输入重复项,但它应该初始化您的单个对象并分配eachh一个到数组元素。

如果用户不想输入所有12个信息,您可能需要提供某种方法在特定条件下打破循环。但是,这完全取决于您的要求。 在这种情况下,您可能必须使用其他选项,如列表或向量

每个对象都可以有多个变量,例如绑定到每个对象的评级、价格、名称和共享。因此,当您将对象存储在数组索引中时,实际上是将该对象包含的所有信息存储在一个位置。因此,在本例中,您不必创建多维数组

您可以根据将对象定义为equal的内容重写equals方法,并使用它确定是否再次提供相同的库存。如果两个对象都是equals,则返回true