构造函数错误,找不到

时间:2011-08-30 13:11:25

标签: java

它说在班级人员中找不到构造函数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);
            }
        }
    }
}

4 个答案:

答案 0 :(得分:3)

Person p1 = new Person();

此行失败,因为您已使用参数定义了构造函数(并且没有没有参数的构造函数)。如果您没有为类定义任何构造函数,编译器将插入一个空的默认构造函数。但是如果您根本定义任何构造函数,编译器就不会插入默认构造函数,并且由您来提供所需的构造函数。

阅读Sun Java Tutorial

中的这些文章

答案 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 ,这是您的程序似乎永远不会做的......