Java error: The constructor Item.ItemM() is undefined
Java error: The constructor Item.ItemM() is undefined
我的 运行 我的 java class 与构造函数有问题。看起来我的构造函数有问题,但我无法真正找到错误。
这是代码:
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. Inner Classes and Enclosing Instances 说(部分)
An inner class is a nested class that is not explicitly or implicitly declared static
.
Inner classes include local (§14.3), anonymous (§15.9.5) and non-static member classes (§8.5).
我的 运行 我的 java class 与构造函数有问题。看起来我的构造函数有问题,但我无法真正找到错误。 这是代码:
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. Inner Classes and Enclosing Instances 说(部分)
An inner class is a nested class that is not explicitly or implicitly declared
static
.Inner classes include local (§14.3), anonymous (§15.9.5) and non-static member classes (§8.5).