我之前曾问过这个问题,并尽可能地遵循了反馈,但是在存储用户输入到阵列中的信息时仍然遇到一个问题。

这是第一次尝试:
OOP Java: Creating a stock inventory program

所以我总共需要三节课(这是必需的)。库存,库存,然后是用户界面。该程序的目的是要求用户输入公司名称,股票等级,价格和股份数量。当然,那我还要做其他事情。我认为其余的一切都很好,问题在于stockInterface,这是我在下面发布的最后一部分代码。

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];

}


public class StockInterface() {
    private static StockInventory stockPortfolio;

        public static void main (String [] args){

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

          stockPortfolio [0]= new Stock(stockName, stockRatings, stockPrice, numberShares);
    }


这段代码不起作用。

stockPortfolio [0]= new Stock(stockName, stockRatings, stockPrice, numberShares)


有人可以告诉我将信息存储到阵列中的正确方法吗?非常感谢你。

最佳答案

因此,您已将stockPortfolio声明为StockInventory的实例。 StockInventory是一个类,而不是数组,因此您不能使用stockPortfolio [0] = ...,因为stockPortfolio是该类的实例。您在StockInventory中有一个私有成员,该成员是Stock类实例的数组。您需要的是一种能够操作它的访问器方法。因此,如下更改StockInventory:

public class StockInvetory {
/*
  All the code you have now ...
*/
  public Stock [] getStocks(){
      return stocks;
  }

  public setStocks(Stock [] value){
     //maybe some checking here ...
      stocks = value;
  }
}


现在,使用该类只需进行一点更改。您需要使用访问器方法,如下所示:

public class StockInterface {
 /*
 What you have just the following line changes ...
 */
   stockPortfolio.getStocks()[0] = new Stock(stockName, stockRatings, stockPrice, numberShares);
}


我假设您对初始化数组的方式感到满意,并且已经确定数组比特定项目集合中更具动态性的数据结构更好。如果不是这样,请查看Java Collections,它们可能会带给您更多的乐趣。

10-08 12:08