java constructor handling lack of arguments

i have this code here for a person details and the person should be intialized always whatever the number of possible arguments given ,like for example only height and age or salary and age
and i find it difficult to declare a constructor for every combination of arguments , is there a more optimal solution than that ??

class person {
    public static final int defalut_salary=1000;
    public static final int default_age=20;
    public static final double default_height=6;
    public static final String default_name="jack";

    protected int salary;
    protected int age;
    protected double height;
    protected String name;  

    person(){       
    }
}
Jon Skeet
people
quotationmark

I would suggest using the Builder pattern:

public final class Person {
    private final int salary;
    private final int age;
    private final double height;
    private final String name;

    public Person(int salary, int age, double height, String name) {
        this.salary = salary;
        this.age = age;
        this.height = height;
        this.name = name;
    }

    // Getters or whatever you want

    public static class Builder {
        // Make each field default appropriately
        private int salary = 1000;
        private int age = 20;
        private double height = 6;
        private String name = "jack";

        public Builder setSalary(int salary) {
            this.salary = salary;
            return this;
        }

        // Ditto for other properties

        public Person build() {
            return new Person(salary, age, height, name);
        }
    }
}

Usage:

Person person = new Person.Builder().setAge(25).setHeight(15).build();

You can perform validation in the Person constructor, and if you want to make any of the fields mandatory, you could take those in the Builder constructor.

people

See more on this question at Stackoverflow