Java 以类作为输入的类构造函数调用
我正在和一个类一起工作,并且得到了一个对这个类的调用,并将其作为输入Java 以类作为输入的类构造函数调用,java,Java,我正在和一个类一起工作,并且得到了一个对这个类的调用,并将其作为输入 professor = new Professor(EEEE, AAAA, YEARS_90, DEP); depProf.addProfessor(professor) public Professor(String name, String surname, Integer yearOfBirth, String department) { this.department = department;
professor = new Professor(EEEE, AAAA, YEARS_90, DEP);
depProf.addProfessor(professor)
public Professor(String name, String surname, Integer yearOfBirth, String department) {
this.department = department;
Person curPerson = new Person(name, surname, yearOfBirth);
}
Professor有一个构造函数(String,String,Integer,String),但在一个测试中,我想用(Professor)作为输入从另一个地方调用它
professor = new Professor(EEEE, AAAA, YEARS_90, DEP);
depProf.addProfessor(professor)
public Professor(String name, String surname, Integer yearOfBirth, String department) {
this.department = department;
Person curPerson = new Person(name, surname, yearOfBirth);
}
我怎样才能成为教授(Professor)的构造器?如果这有意义的话
我正在考虑在调用第二个构造函数时调用第一个构造函数,但实际上不知道如何使其工作。您可以使用
this
调用另一个构造函数
public Professor(Professor professor) {
this(professor.name, professor.surname, professor.yearOfBirth, professor.department);
}
您可以调用同一类中的另一个构造函数,例如:
公共教授(字符串名称、字符串姓氏、整数出生年份){
this.name=名称;
this.姓氏=姓氏;
this.yearOfBirth=出生年份;
}
公共教授(字符串名称、字符串姓氏、整数出生年份、字符串系){
这(姓名、姓氏、出生年份);
这个部门=部门;
}
公共教授(p教授){
这(p.姓名,p.姓氏,p.出生年份,p.部门);
}
如果我没有弄错,您正在尝试使用复制构造函数。这个构造函数是默认的C++生成的,但是你必须手动实现java中的一个,在你的代码>教授< /Cord>类:
public Professor(Professor p) {
this(p.name, p.surname, p.yearOfBirth, p.department);
}
您只需编写构造函数,具体是什么让您感到困惑
public Professor(Professor other){…}
然后复制他的状态或调用另一个构造函数this(other.getName()、other.getName()、other.getYearOfBirth()、other.getDepartment())你有没有试着在互联网上搜索“java复制构造函数”这个词?也可以看看这个答案“我如何在java中从一个构造函数调用另一个构造函数?”我的问题是教授只有一个系。名称、姓氏和年份是另一个类的输入,我不能使用这个名字。因为它将像人物名。我不想调用教授所指出的对象,C++没有生成这样的构造函数。这是不同的。更类似于Javasclone
mechanism-黑色巫毒魔法。若我的教授课上并没有名字、姓氏和出生年份呢?教授构造函数调用Person(String,String,Integer)教授只有department。没关系,没想到超类的东西。