gpt4 book ai didi

java - 构造函数问题传递具有聚合关系的参数

转载 作者:行者123 更新时间:2023-11-30 10:35:33 25 4
gpt4 key购买 nike

我有两个具有聚合关系的类。当我从 main 实例化一个对象时,它不会在其中一个类中进行初始化。但是,如果我手动输入我尝试在 main 中传递的值,它会编译。这是字段和构造函数。如果您认为我需要发布其余代码,我会的。我不知道我是不是瞎了。仅供引用,我是初学者,所以如果我的术语不好,我提前道歉。

主要内容:

public class Test
{
public static void main(String[] args)
{
Patient person = new Patient("Please", "Helpme", "01/01/2016", "Broncos", "Insurance of Broncos");
Treatment treatment1 = new Treatment("08/4/2015", "1:00", "1:20", person3);
}
}

类(class)待遇:这就是问题所在。它是“person = new Patient(aPerson);”。

public class Treatment
{
private Date treatmentDate;
private Time startTime;
private Time endTime;
private Patient person;

public Treatment(String aDate, String sTime, String eTime, Patient aPerson)
{
treatmentDate = new Date(aDate);
startTime = new Time(sTime);
endTime = new Time(eTime);
person = new Patient(aPerson);
}

类患者:

public class Patient extends Person
{
final private int NUM = 10;
private String employer;
private String InsuranceCompany;
private int treatmentCount = 0;
private String[] a1 = new String[NUM];
public Patient(String aFName, String aLName, String aDate, String anEmployer, String anInsurranceCompany)
{
super(aFName, aLName, aDate);
String firstName = aFName;
employer = anEmployer;
InsuranceCompany = anInsurranceCompany;
}

这是我收到的错误消息:

----jGRASP 执行程序:javac -g Treatment.javaTreatment.java:20: 错误:类 Patient 中的构造函数 Patient 不能应用于给定类型; 人=新病人(aPerson); ^ 必需:字符串,字符串,字符串,字符串,字符串 发现:病人 原因:实际和形式参数列表的长度不同1 个错误

----jGRASP wedge2:进程的退出代码为 1。 ----jGRASP:操作完成。

现在,如果我转到 Treatment 类并手动输入来自 main 和参数的这些值,它将编译。任何建议和指导将不胜感激。如前所述,如果发布类(class)的其余代码会有所帮助,我会很乐意这样做。

最佳答案

听起来您好像忘了将构造函数定义为 Patient(Patient p)?尝试将其添加到您的 Patient 类中:

public Patient(Patient p) {
this(p.fName, p.lName, p.date, p.employer, p.InsuranceCompany);
}

此外,您还需要使 Person 的前 3 个值 protected 或改用 getter 方法

public class Patient extends Person {

final private int NUM = 10;
private String employer;
private String InsuranceCompany;
private final int treatmentCount = 0;
private final String[] a1 = new String[NUM];

public Patient(String aFName, String aLName, String aDate) {
super(aFName, aLName, aDate);
}

public Patient(String aFName, String aLName, String aDate, String anEmployer, String anInsurranceCompany) {
super(aFName, aLName, aDate);
String firstName = aFName;
employer = anEmployer;
InsuranceCompany = anInsurranceCompany;
}

public Patient(Patient p) {
this(p.fName, p.lName, p.date, p.employer, p.InsuranceCompany);
}
}

和人类:

public class Person {

protected String fName;
protected String lName;
protected String date;

public Person(String aFName, String aLName, String aDate) {
fName = aFName;
lName = aLName;
date = aDate;
}
}

关于java - 构造函数问题传递具有聚合关系的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41083112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com