我之前曾问过这个问题,并尽可能地遵循了反馈,但是在存储用户输入到阵列中的信息时仍然遇到一个问题。
这是第一次尝试:
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,它们可能会带给您更多的乐趣。