public class User {
private final String name; //必选,由final修饰,属性不可修改
private final String cardID; //必选
private final int age; //可选
private final String address; //可选
private final String phone; //可选
private User(UserBuilder userBuilder){ //user类的构造函数为私有的
this.name=userBuilder.name;
this.cardID=userBuilder.cardID;
this.age=userBuilder.age;
this.address=userBuilder.address;
this.phone=userBuilder.phone;
}
public String getName() {
return name;
}
public String getCardID() {
return cardID;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
public String getPhone() {
return phone;
}
public static class UserBuilder{
private final String name; //必选对象用final修饰
private final String cardID;
private int age;
private String address;
private String phone;
public UserBuilder(String name,String cardID){ //构造方法只接受必传的参数
this.name=name;
this.cardID=cardID;
}
public UserBuilder age(int age){
this.age=age;
return this;
}
public UserBuilder address(String address){
this.address=address;
return this;
}
public UserBuilder phone(String phone){
this.phone=phone;
return this;
}
public User build(){
return new User(this);
}
}
}