java - Main 不会从相应的类中提取信息。继续产生错误

标签 java class inheritance

我正在学习 Java 类(class)简介,但正忙于我的实验室工作。

我们正在建立一个具有继承性的类。教授为我们提供了 MainAddressPersonNamePhoneNumberPersonRecord >。

我们的任务是创建一个类CustomerRecord,其中包含CustomerID、creditCardType、creditCardNumber 和creditCardDate。我们被指示创建一个类并对“CustomerRecord 而不是 Main”进行必要的更改

我继续为类(class)设置所有内容,但仍然遇到相同的错误:

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 构造函数的所有参数都会得到处理。

关于java - Main 不会从相应的类中提取信息。继续产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643125/

相关文章:

objective-c - iOS 子类化和强制方法

java - 如何使用示例 Controller 在 Javafx 中设置轴范围?

java - 将二维 ArrayList 复制为新的

python - __enter__ 和 __exit__ 如何在 Python 装饰器类中工作?

c# - 为什么一个类可以在C#中实现自己的私有(private)嵌套接口(interface)?

javascript - 使用带有可变长度参数数组的 JavaScript new 关键字

java - 如何在netbeans gradle中使用类图创建Javadoc

java - 按ESC退出全屏模式后如何在javafx中返回全屏?

javascript - 将复选框总数与已选中复选框数进行比较?

javascript - css 从一个选项卡应用到另一个选项卡