java - Main 不会从适当的类中提取信息。继续产生错误
问题描述
我正在学习 Java 课程的介绍,并坚持我的实验室工作。
我们正在建立一个具有继承的类。教授为我们提供了Main
, Address
, PersonName
,PhoneNumber
和PersonRecord
.
我们的任务是创建一个CustomerRecord
包含 CustomerID、creditCardType、creditCardNumber 和 creditCardDate 的类。我们被指示生成一个类并对“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;
}
}
解决方案
由于您不应该更改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
构造函数的所有参数都被处理了。
推荐阅读
- android - 获取纬度和经度的数量
- python-3.x - 如何使用小数在变量中的分隔符后设置和保留 2 位数字?
- javascript - 数据表和分页和行选择问题
- windows - git-bash 生成默认的 .bashrc
- asp.net - 会话变量在来自另一个提供者的回调中丢失
- php - 点击提交按钮没有响应
- r - 使用两个向量循环代码以使用 R 生成一个 xlsx 输出
- php - 警告:session_start():无法发送会话缓存限制器 - 标头已发送。请建议
- azure - Azure 自动化:Runbook、RunAs 帐户:如何允许访问 AAD(例如 Get-AzADUser)?
- spring-boot - 如果上一个作业仍在运行,如何防止在 Spring Batch 上执行计划作业?