Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Main不会从适当的类中提取信息。继续产生错误_Java_Class_Inheritance - Fatal编程技术网

Java Main不会从适当的类中提取信息。继续产生错误

Java Main不会从适当的类中提取信息。继续产生错误,java,class,inheritance,Java,Class,Inheritance,我正在学习Java课程的入门课程,我一直在做实验工作 我们正在设置一个具有继承的类。教授给我们提供了主,地址,人名,电话号码,以及人名记录 我们的任务是创建一个包含CustomerID、creditCardType、creditCardNumber和creditCardDate的类CustomerRecord。我们被指示生成一个类,并对“CustomerRecord而非Main”进行任何必要的更改 我继续为课程设置了所有内容,但仍然得到相同的错误: Error:(20, 20) java: co

我正在学习Java课程的入门课程,我一直在做实验工作

我们正在设置一个具有继承的类。教授给我们提供了
地址
人名
电话号码
,以及
人名记录

我们的任务是创建一个包含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
的调用方式。