Java Main不会从适当的类中提取信息。继续产生错误
我正在学习Java课程的入门课程,我一直在做实验工作 我们正在设置一个具有继承的类。教授给我们提供了Java Main不会从适当的类中提取信息。继续产生错误,java,class,inheritance,Java,Class,Inheritance,我正在学习Java课程的入门课程,我一直在做实验工作 我们正在设置一个具有继承的类。教授给我们提供了主,地址,人名,电话号码,以及人名记录 我们的任务是创建一个包含CustomerID、creditCardType、creditCardNumber和creditCardDate的类CustomerRecord。我们被指示生成一个类,并对“CustomerRecord而非Main”进行任何必要的更改 我继续为课程设置了所有内容,但仍然得到相同的错误: Error:(20, 20) java: co
主
,地址
,人名
,电话号码
,以及人名记录
我们的任务是创建一个包含CustomerID、creditCardType、creditCardNumber和creditCardDate的类CustomerRecord
。我们被指示生成一个类,并对“CustomerRecord而非Main”进行任何必要的更改
我继续为课程设置了所有内容,但仍然得到相同的错误:
Error:(20, 20) java: constructor CustomerRecord in class edu.cscc.CustomerRecord cannot be applied to given types;
required: java.lang.String,java.lang.String,java.lang.String,java.lang.String
found: edu.cscc.PersonName,edu.cscc.Address,edu.cscc.PhoneNumber,edu.cscc.PhoneNumber,edu.cscc.PhoneNumber,java.lang.String,java.lang.String,java.lang.String,java.lang.String
reason: actual and formal argument lists differ in length
主要内容如下:
public class Main {
public static void main(String[] args) {
// Initialize test data
Address address = new Address("120 North Tulip Tree Drive",
"Jackson", "OH", "45640");
PersonName name = new PersonName("Dr.", "Adelaide", "Penelope",
"Aardvark", null);
PhoneNumber homephone = new PhoneNumber(740, 555, 1005);
PhoneNumber workphone = new PhoneNumber(740, 555, 2356);
PhoneNumber cellphone = new PhoneNumber(614, 555, 9723);
// TODO - after creating CustomerRecord class, uncomment the following code.
// Create sample customer record
CustomerRecord customer;
customer = new CustomerRecord (name, address, homephone, workphone, cellphone,
"123456","Visa","4111-1111-1111-1111", "12/25");
// Print customer record report
String namerpt = "Name: " + customer.getName().toString();
String addressrpt = "Address: " + address.getStreetAddress() + "\n" +
"\t" + address.getCity() + ", " + address.getState() + " " + address.getZip();
String phonerpt = "Home Phone: " + customer.getHomePhone().toString() + "\n" +
"Work Phone: " + customer.getWorkPhone().toString() + "\n" +
"Mobile Phone: " + customer.getCellPhone().toString();
System.out.println(namerpt+"\n"+addressrpt+"\n"+phonerpt+"\n"+
"Customer ID: "+customer.getCustomerID() + "\n"+
"Credit card type: "+customer.getCreditCardType() + "\n"+
"Credit card number: "+customer.getCreditCardNumber() + "\n"+
"Credit card date: "+customer.getCreditCardDate());
}
}
下面是我创建的Customer类:
public class CustomerRecord {
private String customerID;
private String creditCardType;
private String creditCardNumber;
private String creditCardDate;
public CustomerRecord(String customerID, String creditCardType, String creditCardNumber, String creditCardDate) {
this.customerID = customerID;
this.creditCardType = creditCardType;
this.creditCardNumber = creditCardNumber;
this.creditCardDate = creditCardDate;
}
//Accesor//Mutator
public String getCustomerID() {
return customerID;
}
public void setCustomerID(String customerID) {
this.customerID = customerID;
}
public String getCreditCardType() {
return creditCardType;
}
public void setCreditCardType(String creditCardType) {
this.creditCardType = creditCardType;
}
public String getCreditCardNumber() {
return creditCardNumber;
}
public void setCreditCardNumber(String creditCardNumber) {
this.creditCardNumber = creditCardNumber;
}
public String getCreditCardDate() {
return creditCardDate;
}
public void setCreditCardDate(String creditCardDate) {
this.creditCardDate = creditCardDate;
}
}
您有一个只接受
String
参数的构造函数:
public CustomerRecord(String customerID, String creditCardType, String creditCardNumber, String creditCardDate) {
您必须创建一个包含9个参数的构造函数:
public CustomerRecord(String customerID, String creditCardType, String creditCardNumber, String creditCardDate) {
前五名分别是人名
、地址
、电话号码
、电话号码
和电话号码
接下来的4个是字符串
参数
由于您的主要方法有:
CustomerRecord customer;
customer = new CustomerRecord(name, address, homephone, workphone, cellphone,
"123456", "Visa", "4111-1111-1111-1111", "12/25");
由于您不应更改
Main
类,请在CustomerRecord
类中添加必要的字段并编辑构造函数,如下所示:
private PersonName name;
private Address address;
private PhoneNumber homephone;
private PhoneNumber workphone;
private PhoneNumber cellphone;
private String customerID;
private String creditCardType;
private String creditCardNumber;
private String creditCardDate;
public CustomerRecord(PersonName name, Address address, PhoneNumber homephone, PhoneNumber workphone, PhoneNumber cellphone, String customerID, String creditCardType, String creditCardNumber, String creditCardDate) {
this.name = name;
this.address = address;
this.homephone = homephone;
this.workphone = workphone;
this.cellphone = cellphone;
this.customerID = customerID;
this.creditCardType = creditCardType;
this.creditCardNumber = creditCardNumber;
this.creditCardDate = creditCardDate;
}
这样,就可以处理
CustomerRecord
构造函数的所有参数。错误消息是不言自明的。您正在传递需要字符串的自定义类。您的CustomerRecord
构造函数只接受4个字符串参数,但您使用9个字符串参数调用它。是的,schmosel说的没错,您传递的是您自己的类对象,而不是String
s。要么构造函数需要编辑,要么构造函数的调用需要编辑。Main
是由教授按原样(我相信)提供的。我认为OP需要使CustomerRecord
符合Main
的调用方式。