我的代码在创建构造函数方面有什么问题?

Arc*_*lly 1 java constructor

我试图创建一个Person类,其构造函数使用给定的参数启动实例变量,但是当通过主类创建新的person对象时,代码无法编译,因为Person构造函数不需要参数,但是我在构造函数中指定了四个.我正在使用NetBeans 7.2.1 ..这是我的代码:

public class Person {
    private String fName;
    private String mName;
    private String lName;
    private String dob;

    public void Person(String first, String middle, String last, String dateOfBirth){

        fName = first;
        mName = middle;
        lName = last;
        dob = dateOfBirth;
    }

    public String getFirstName(){
        return fName;
    }

    public String getMiddleName(){
        return mName;
    }

    public String getLastName(){
        return lName;
    }

    public String getDOB(){
        return dob;
    }

    public void getFullName(){
        System.out.println(fName + " " + mName + " " + lName);

    }

    public void setFirstName(String name){
        fName = name;
    }

    public void setMiddleName(String name){
        mName = name;
    }

    public void setLastName(String name){
        lName = name;
    }

    public void setDOB(String date){
        dob = date;
    }

    public static void main(String[] args) {
        Person p1 = new Person("John","Thomas","Smith", "10 Jul 14");
        p1.getFullName();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我运行程序时收到的错误:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code -       constructor Person in class Person cannot be applied to given types;
  required: no arguments
  found: java.lang.String,java.lang.String,java.lang.String,java.lang.String
  reason: actual and formal argument lists differ in length
    at Person.main(Person.java:54)
Java Result: 1
Run Code Online (Sandbox Code Playgroud)

rge*_*man 10

这不是构造函数; 因为void,这是一种方法.

public void Person(String first, String middle, String last, String dateOfBirth){
Run Code Online (Sandbox Code Playgroud)

没有显式构造函数,因此Java编译器创建了一个默认的no-arg构造函数.这解释了错误消息中指出的部分:

required: no arguments
Run Code Online (Sandbox Code Playgroud)

删除void将其转换为构造函数.

public Person(String first, String middle, String last, String dateOfBirth){
Run Code Online (Sandbox Code Playgroud)