【问题标题】:Creating a simple stock inventory program - 2nd attempt创建一个简单的库存盘点程序 - 第二次尝试
【发布时间】:2012-08-28 22:44:45
【问题描述】:

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

这是第一次尝试: 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)

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

【问题讨论】:

  • 您需要方法中的功能,可能在main 中。你会想要实际实例化一个StockInventory
  • 请重新排列您的代码,现在,在 StockInterface 类中没有任何意义。把代码放在这里你可能做错了...
  • 将库存规模限制为 12 个可能没有意义……除非他们能够购买、销售和推出新产品,否则该公司将倒闭。使用可以动态增长和收缩的 java.util.ArrayList
  • 谢谢你们的cmets。这只是我编造的一些代码,以代替我不允许在互联网上发布的真实代码。所以肯定会有一些没有真正意义的东西。我的问题是如何将用户输入的任何信息放入数组中,以便我可以用它做其他事情。

标签: java oop stocks


【解决方案1】:

很多编译错误...

您已将stockRating 定义为String,但仍将其返回为int

public int getStockRating() {
    return stockRating;
}

price 也是如此。

这里有多余的括号:

public class StockInterface() {
                           ^

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

console 未实例化。 stockPortfolio 被分配为数组条目,但它是单个对象,并分配给不是匹配类型的Stock

【讨论】:

  • 感谢您发现这些错误。这不是我的真实代码,我必须非常快速地编写一些代码,因为我不允许发布我的真实代码。这解释了这么多错误。
【解决方案2】:

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

【讨论】:

  • 非常感谢您的意见。我回家后会试试你的建议。
猜你喜欢
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多