坚持创造一个新的对象

时间:2013-05-06 16:26:14

标签: java object java.util.scanner

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

我如何创建我的目标的新实例?我也创建了扫描程序类,并让它读取输入,但无法识别我输入的输入是新项目的属性。

非常感谢任何帮助,谢谢。

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)    :>");



    }

5 个答案:

答案 0 :(得分:1)

你这样做:

StockItem stockItem = new StockItem (itemID,  itemDesc,  Double.valueOf(price),  Integer.valueOf(quantity),  Integer.valueOf(reOrderLevel));

答案 1 :(得分:1)

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

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

这将使用所有空变量加载新对象。

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

用于更新商品ID

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

希望这有帮助

答案 2 :(得分: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);

答案 3 :(得分: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的参数。

答案 4 :(得分:0)

  

我已经在里面创建了一个StockItem的构造函数   类文件,使所有变量公开,

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

你正在制造经典的新手错误,将用户互动混合在一起,而不属于他们。这是一个两步过程:

  1. 从用户
  2. 获取所有值
  3. 创建实例
  4. 构造函数无需知道或关心传递给它的值的来源。