//营养素 public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; //卡路里 private final int fat; //脂肪 private final int sodium; //钠 private final int carbohydrate; //碳水化合物 // 构造器,静态内部类 public static class Builder { // 必要参数 private final int servingSize; private final int servings; // 可选参数 private int calories = 0; private int fat = 0; private int carbohydrate = 0; private int sodium = 0; public Builder(int servingSize, int servings) { this.servingSize = servingSize; this.servings = servings; } public Builder calories(int calories) { this.calories = calories; return this; } public Builder sodium(int sodium) { this.sodium = sodium; return this; } public Builder fat(int fat) { this.fat = fat; return this; } public Builder carbohydrate(int carbohydrate) { this.carbohydrate = carbohydrate; return this; } //最后返回构建成功的对象 public NutritionFacts build() { return new NutritionFacts(this); } } //私有构造子 private NutritionFacts(Builder builder) { this.servingSize = builder.servingSize; this.servings = builder.servings; this.calories = builder.calories; this.fat = builder.fat; this.sodium = builder.sodium; this.carbohydrate = builder.carbohydrate; } @Override public String toString() { // TODO Auto-generated method stub return "["+ "servingSize:"+servingSize+ ",servings:"+servings+ ",calories:"+calories+ ",fat:"+fat+ ",sodium:"+sodium+ ",carbohydrate:"+carbohydrate+ "]"; } public static void main(String [] args) { NutritionFacts cocaCola = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35).carbohydrate(27).build(); System.out.println(cocaCola.toString()); } }
输出结果:
[servingSize:240,servings:8,calories:100,fat:0,sodium:35,carbohydrate:27]
参考:http://www.cnblogs.com/xwdreamer/archive/2012/06/06/2538496.html