我想打印出Person
对象的名字和姓氏。
这是我的PersonTest类,它运行该文件并从Person类获取信息:
package pckg;
public class PersonTest extends Person {
public static void main(String[] args) {
Person firstperson = new Person("James", "Bond");
String firstname = firstperson.getFirstname();
String lastname = firstperson.getLastname();
System.out.println("Person's first name is " + firstname);
System.out.println("My name is " + firstperson.getLastname() + ",");
System.out.println(firstperson);
System.out.println("Person is " + firstperson);
}
}
现在它说"构造函数Person(String,String)未定义"。
所以我的问题是,我应该在Person.class中编写什么来使其工作? 到目前为止我已经尝试过了:
package pckg;
public class Person {
public String Firstname, Lastname;
public String getFirstname() {
return Firstname;
}
public String getLastname() {
return Lastname;
}
}
答案 0 :(得分:0)
如错误所述,您尚未定义带有签名Person(String, String)
的构造函数。
这样做,错误就会消失:
public class Person {
public String Firstname, Lastname;
public Person(String firstName, String lastName) {
this.Firstname = firstName;
this.Lastname = lastName;
}
public String getFirstname() {
return Firstname;
}
public String getLastname() {
return Lastname;
}
}
答案 1 :(得分:0)
你必须自己编写一个构造函数。如果你写new Person("James", "Bond");
,编译器不知道你的意思。什么是字符串"James"
? (它是Firstname
,Lastname
还是完全不同的东西?)
只需将此代码添加到您的班级:
public Person(String fname, String lname) {
Firstname = fname;
Lastname = lname;
}
每次调用new Person
时都会调用此函数。您只需将两个字符串存储在正确的类变量中即可。
答案 2 :(得分:0)
与错误一样,您没有为Person类实现构造函数
您编辑的代码应为
public class Person {
public String Firstname, Lastname;
public Person(String Firstname, String Lastname){
this.Firstname = Firstname;
this.Lastname = Lastname;
}
public String getFirstname() {
return Firstname;
}
public String getLastname() {
return Lastname;
}
}
答案 3 :(得分:0)
您正在尝试调用此处不存在的构造函数:
Person firstperson = new Person("James", "Bond");
Person
课程中没有包含两个String
参数的构造函数:
Person(String firstName, String secondName) {
this.firstName = firstName;
this.secondName = secondName;
}
将该构造函数添加到Person
类,或使用隐式零参数构造函数并分别设置这些值:
Person person = new Person();
person.firstName = "James";
person.secondName = "Bond";