Java 坚持创建新对象
我正在尝试创建一个名为item1的新对象,它属于StockItem类。我已经在类文件中为StockItem创建了构造函数,使所有变量都是公共的,但是我现在尝试创建它的新实例,但是希望用户使用scanner类输入变量 我将如何着手创建我的objec的新实例?我也创建了scanner类,并让它读取输入,但无法识别我正在键入的输入是新项目的属性 任何帮助都将不胜感激,谢谢Java 坚持创建新对象,java,object,java.util.scanner,Java,Object,Java.util.scanner,我正在尝试创建一个名为item1的新对象,它属于StockItem类。我已经在类文件中为StockItem创建了构造函数,使所有变量都是公共的,但是我现在尝试创建它的新实例,但是希望用户使用scanner类输入变量 我将如何着手创建我的objec的新实例?我也创建了scanner类,并让它读取输入,但无法识别我正在键入的输入是新项目的属性 任何帮助都将不胜感激,谢谢 StockItem Constructor: public StockItem (String itemID, String i
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) :>");
}
你应该这样做:
StockItem stockItem = new StockItem (itemID, itemDesc, Double.valueOf(price), Integer.valueOf(quantity), Integer.valueOf(reOrderLevel));
好吧,为了制造一个新的物体,你只要上这门课
StockItem item = new StockItem("", "", 0.0, 0, 0);
这将加载包含所有空变量的新对象
要使用scanner类更新每个项目,只需执行以下操作:
用于更新项目ID
System.out.println("Enter ID :>");
String itemID = scanner1.nextLine();
item.itemID = itemID;
希望这有助于删除
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的参数
我已经为中的StockItem创建了构造函数
类文件,使所有变量公开
这是一个非常糟糕的主意。这些变量应该是私有的
你犯了一个典型的新手错误,把不属于你的用户交互混为一谈。这是一个分两步的过程:
构造函数不需要知道或关心传递给它的值来自何处。然后使用构造函数创建一个对象
Double priceVal = Double.parseDouble(price);
int qty = Integer.parseInt(quantity);
int level = Integer.parseInt(reOrderLevel);
StockItem stock1 = new StockItem(itemID, itemDesc, priceVal, qty, level);
你试了什么?你犯了什么错误?当我这样做时,我得到了错误:“找不到符号”。它不能识别我的变量,因为你可能会用传递字符串来代替Double和int值。