它说在班级人员中找不到构造函数Person(),但我有班级人员。继承我的代码
public class Person{
private String name;
private int age;
public String details;
public Person(final String name, final int age){
this.name = name;
this.age = age;
}
}
和测试人员班级
public class TestPerson{
public static void main(String args[]){
int q;
System.out.println(args.length + "objects created");
for(q = 1; q < args.length; q++){
final Person p1 = new Person();
for(int x = 0; x < args[q].length(); x++){
args[q].split(",");
p1.setDetails(name, age);
System.out.println(p1);
}
}
}
}
答案 0 :(得分:3)
Person p1 = new Person();
此行失败,因为您已使用参数定义了构造函数(并且没有没有参数的构造函数)。如果您没有为类定义任何构造函数,编译器将插入一个空的默认构造函数。但是如果您根本定义任何构造函数,编译器就不会插入默认构造函数,并且由您来提供所需的构造函数。
中的这些文章答案 1 :(得分:2)
您的Person
构造函数需要两个参数。在测试程序中调用它时,必须传递两个参数。
或者您可以在Person
类中创建不带参数的第二个构造函数。
答案 2 :(得分:1)
您声明Person构造函数需要两个args。传递它两个args。
答案 3 :(得分:1)
构造函数是
public Person(String name, int age)
所以你不能打电话
Person p1 = new Person();
但
Person p1 = new Person(name, age);
当然,您需要先定义 name 和 age ,这是您的程序似乎永远不会做的......