考虑以下代码:
// Create a Item oject
item item = new item();
编译器错误消息:
错误 - 找不到符号 - 构造函数项();
班级item
:
public class item
{
// Attributes
private String Itemcode;
private String Itemname;
private String Description;
private String Style;
private String Finish;
private float Unitprice;
private float Stock;
private String Suppliercode;
private String Suppliername;
private String Address;
public item(String ItemcodeIn, String ItemnameIn, String DescriptionIn,
String StyleIn, String FinishIn, float UnitpriceIn, float StockIn,
String SuppliercodeIn,
String SuppliernameIn, String AddressIn)
{
Itemcode = ItemcodeIn;
Itemname = ItemnameIn;
Description = DescriptionIn;
Style = StyleIn;
Finish = FinishIn;
Unitprice = UnitpriceIn;
Stock = StockIn;
Suppliercode = SuppliercodeIn;
Suppliername = SuppliernameIn;
Address = AddressIn;
}
然后这个代码后面跟着属性的所有setter / getter方法。
如何解决此问题?
答案 0 :(得分:10)
创建参数化构造函数时,除非您创建自己的构造函数,否则将删除默认构造函数。
因此,您必须显式创建默认构造函数,如下所示:
public Item() {}
答案 1 :(得分:6)
您需要添加默认构造函数:
public item() {
// any initialization you need here
}
您还应该根据最佳做法将您的课程重命名为Item
(大写I
),并且您的字段应以小写字母开头。
答案 2 :(得分:2)
您的Item
类只有1个构造函数:
public item(String ItemcodeIn, String ItemnameIn, String DescriptionIn,
String StyleIn, String FinishIn, float UnitpriceIn, float StockIn,
String SuppliercodeIn, String SuppliernameIn, String AddressIn)
虽然你试图通过new Item();
来访问它。这个构造函数不存在,因为你已经用参数化的构造函数覆盖了它。
您应该在创建Item
时提供这些参数,或者创建另一个通用构造函数:
public Item() {
// Some code goes here
}
答案 3 :(得分:0)
每当你不编写任何构造函数时,默认构造函数默认在类中可用。但是,如果您在任何类中定义编写参数化构造函数,那么只有该参数化构造函数可用。在这种情况下,您必须显式定义默认构造函数。