设置为
我有麻烦运行我的java类与构造函数。看起来我的构造函数有问题,但我无法真正找到错误。下面是代码:
import java.util.Scanner;
public class Item
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
ItemM myItem = new ItemM();
System.out.println("Enter item ID");
String itemID = input.nextLine();
myItem.setItemID(itemID);
System.out.printf("The Item ID is %s%n", myItem.getItemID());
}
public class ItemM
{
private String itemID;
public ItemM(String itemID)
{
this.itemID = itemID;
}
public void setItemID(String itemID)
{
this.itemID = itemID;
}
public String getItemID()
{
return itemID;
}
}
}
错误是:
ItemM myItem = new ItemM();
我也试过使用:
ItemM myItem = new ItemM(itemID);
我需要它在一个文件。
设置为static
首先你的ItemM
需要一个String
参数。你可以让你的内部class
静态,允许你的static main
方法在没有Item
实例的情况下使用它。
public static class ItemM
和则可以使用
ItemM myItem = new ItemM("a");
或者
ItemM myItem = new Item().new ItemM("a");
解释JLS-8.1.3。内部类和封闭实例表示(部分地)
内部类是未显式或隐式声明
static
的嵌套类。内部类包括本地(§14.3)、匿名(§15.9.5)和非静态成员类(§8.5)。