1

我正在尝试创建一个名为 item1 的新对象,它属于 StockItem 类。我已经在类文件中创建了 StockItem 的构造函数,将所有变量公开,但是我现在正在尝试创建它的新实例,但希望用户使用扫描仪类输入变量。

我将如何创建我的对象的新实例?我也创建了扫描仪类,并让它读取输入,但不承认我正在输入的输入是新项目的属性。

任何帮助将不胜感激,谢谢。

StockItem Constructor:

public StockItem (String itemID, String itemDesc, Double price, int quantity, int reOrderLevel)
{       
        this.itemID = itemID;
        this.itemDesc = itemDesc;
        this.price = price;
        this.quantity = quantity;
        this.reOrderLevel = reOrderLevel;
}

扫描仪输入代码:

else if (i==1)
    {


        StockListInterface.doAddItem(item);





        System.out.println("Add New Item");
        System.out.println("****************");

        Scanner scanner1 = new Scanner(System.in);

        System.out.println("Enter ID    :>");            
        String itemID = scanner1.nextLine();

        System.out.println("Enter Description    :>");
        String itemDesc = scanner1.nextLine();

        System.out.println("Enter Price    :>");
        String price = scanner1.nextLine();

        System.out.println("Enter Quantity    :>");
        String quantity = scanner1.nextLine();

        System.out.println("Enter Re-Order Level    :>");
        String reOrderLevel = scanner1.nextLine();

        System.out.println("Enter another? (Y/N)    :>");



    }
4

5 回答 5

1

好的,为了制作一个新对象,你只需上课,

StockItem item = new StockItem("", "", 0.0, 0, 0);

这将加载带有所有空变量的新对象。

为了使用您的扫描仪类来更新每个项目,您只需执行以下操作:

用于更新项目 ID

System.out.println("Enter ID    :>");            
String itemID = scanner1.nextLine();
item.itemID = itemID;

希望这可以帮助

于 2013-05-06T16:31:25.263 回答
1

然后使用构造函数创建一个对象;

Double priceVal = Double.parseDouble(price);
int qty = Integer.parseInt(quantity);
int level = Integer.parseInt(reOrderLevel);

StockItem stock1 = new StockItem(itemID,  itemDesc,  priceVal,  qty,  level);
于 2013-05-06T16:32:12.780 回答
1

你会这样做:

StockItem stockItem = new StockItem (itemID,  itemDesc,  Double.valueOf(price),  Integer.valueOf(quantity),  Integer.valueOf(reOrderLevel));
于 2013-05-06T16:30:06.853 回答
0

消除

StockListInterface.doAddItem(item);

之后添加:

 System.out.println("Enter another? (Y/N)    :>");

编码:

StockItem item = new StockItem(itemID, itemDesc, Double.valueOf(price), 
 Int.ValueOf(quantity), Int.ValueOf(reOrderLevel));
StockListInterface.doAddItem(item);

假设 StockListInterface.doAddItem 检索 StockList 的参数。

于 2013-05-06T16:31:44.967 回答
0

我已经在类文件中为 StockItem 创建了构造函数,将所有变量公开,

这是一个非常糟糕的主意。这些变量应该是私有的。

您犯了一个经典的新手错误,即在不属于他们的地方混合用户交互。这是一个两步过程:

  1. 从用户那里获取所有值
  2. 创建实例

构造函数不需要知道或关心你传递给它的值来自哪里。

于 2013-05-06T16:32:12.040 回答