构造方法参数可选时,用构建器(builder)

构造器参数有多个时要使用构建器builder
参数有多个,weight,height,log,nice多个参数,
其中weight和height参数是必须的,而log和nice参数是随机选择的,可以有其中一个,也可以两个都需要。
这是我们为了避免使用beans方法时由于线程不同步的因素,我们使用构建器。(builder)

在原来类的基础上创建内部类builder,builder中的属性和原来类Cat中的属性个数相同,然后:
1.把必须要的两个属性weight和height作为Builder的构造函数进行返回
2.其他的可以有的参数分别创建其构造的调用方法,
把这两种方式产生的属性都返回给Builder对象的属性
在创建一个Cat builder的方法,这个方法吧builder对象返回给new Cat(即使吧duilder对象的属性给了Cat对象)
这样就实现了对Cat类属性的随机选择添加(可以选择要添加的属性)
注意Cat对象 其在主方法中的调用方式

package builder;

public class Cat {

	private final int height;
	private final int weight;
	private final int nice;
	private final int log;
	

	public  static class Builder{
		private int height;
		private int weight;
		
		private  int nice = 0;
		private  int log = 0;
		
		public  Builder(int height,int weight) 
		{
			this.height = height;
			this.weight = weight;
		}
		public Builder nice(int nice) 
		{
			this.nice = nice;
			return this;
		}
		public Builder log(int log) 
		{
			this.log = log;
			return this;
		}
		public Cat builder() 
		{
			return new Cat(this);
		}
	}
	private Cat(Builder builder)
	{
		height = builder.height;
		weight = builder.weight;
		nice = builder.nice;
		log = builder.log;
		
	}		
	
}

测试类
注意Cat对象 其在主方法中的调用方式

package builder;

public class Test {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根

		Cat cat1 = new Cat.Builder(1, 1).nice(5).log(4).builder();
		System.out.println("使用了builder方法构造了猫的各项信息");
	}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
05-23 19:02
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务