1

我之前已经问过这个问题并尽可能地遵循反馈,但我仍然在存储用户输入到数组中的信息时遇到问题。

这是第一次尝试: OOP Java:创建库存盘点程序

所以我需要总共三个课程(这是必需的)。库存,库存库存,然后是用户界面。该程序的目的是要求用户输入公司名称、股票评级、价格和股票数量。当然,然后我必须做其他事情。我想我对其余的没问题,问题是 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)

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

4

2 回答 2

2

很多编译错误...

您已定义stockRating为 aString但仍将其返回为 a int

public int getStockRating() {
    return stockRating;
}

对于price.

你在这里有额外的括号:

public class StockInterface() {
                           ^

同样在StockInventory,类块中有多个语句,它们属于一个方法。

console没有实例化。stockPortfolio 被分配为一个数组条目,但它是一个单独的对象,并且分配给Stockwhich 不是匹配的类型。

于 2012-08-28T23:01:59.180 回答
1

因此,您已将 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,它们可能会给您带来更多乐趣。

于 2012-08-28T23:03:55.627 回答