创建一个女朋友,她有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据自己的喜好去建造不同的女朋友,我们不需要关心她是怎么建造的,我们只需要去指定她的属性就行了

相比如文字解释,我更习惯撸代码来解释,下面来一步步实现怎么用java来为你创建一个女朋友

首先定义一个女朋友类:

package nuoyanli;

/**

* Created by ${nuoyanli} on 2019/4/7.

*/

public class GirlFriend {

private String sex;//性别

private int age;//年龄

private int stature;//身高

private int weight;//体重

private String type;//类型

}

按照我们以往的理解,要创建一个女朋友是不是要直接new出来,我们可以通过构造方法把属性传过去

例如:我对女朋友的要求只有一个,是女的就行,定义一个构造方法:

public GirlFriend(String sex) {

this.sex = sex;

}

然后再需要的时候来创建她:

GirlFriend girlFriend = new GirlFriend("女");

如果我们要求性别和身高就要定义:

public GirlFriend(String sex, int stature) {

this.sex = sex;

this.stature = stature;

}

你想想每个人的要求都不一样,你得创建多少个构造方法,而且参数多了,可读性很差比如:

GirlFriend girlFriend = new GirlFriend("女",19,170,90,"声优");

java有一个建造者模式:

建造一个GirlFriendBuilder类:

package nuoyanli;

/**

* Created by ${nuoyanli} on 2019/4/7.

*/

public class GirlFriendBuilder {

String sex;//性别

int age;//年龄

int stature;//身高

int weight;//体重

String type;//类型

public GirlFriendBuilder setSex(String sex) {

this.sex = sex;

return this;

}

public GirlFriendBuilder setAge(int age) {

this.age = age;

return this;

}

public GirlFriendBuilder setStature(int stature) {

this.stature = stature;

return this;

}

public GirlFriendBuilder setWeight(int weight) {

this.weight = weight;

return this;

}

public GirlFriendBuilder setType(String type) {

this.type = type;

return this;

}

/**

*返回一个GirlFriend对象

*/

public GirlFriend build() {

return new GirlFriend(this);

}

}

然后在GirlFriend类里面构造方法传入GirlFriendBuilder对象:

public GirlFriend(GirlFriendBuilder builder) {

this.sex = builder.sex;

this.age = builder.age;

this.stature = builder.stature;

this.weight = builder.weight;

this.type = builder.type;

}

然后创建的时候:

GirlFriend girlFrie1nd = new GirlFriendBuilder()

.setAge(19)

.setSex("女")

.setType("声优")

.setStature(175)

.build();

这样就成功创建了一个女朋友,代码的可读性也挺高的

如果对这个女朋友不满意,可以自定义属性哦,由于笔者水平有限,并且找不到女朋友所以只能先new一个girFriend对象

java新建一个女朋友_java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写...相关推荐

  1. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  2. java抽象类和接口_Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程问题? 1)类关键字修饰符: 抽象类使用abstract修饰,含有抽象方法(使用abs ...

  3. java调用构造函数中某一个值_Java如何在枚举的构造函数中调用另一个枚举值

    Java中的枚举(enum)是一种存储一组常量值的数据类型.您可以使用枚举来存储固定值,例如一周中的天,一年中的月等. 您可以使用关键字 enum定义枚举,后跟枚举的名称为-enum Days { S ...

  4. java邮件模板代码_java创建邮件模板

    一直在整发送邮件,由于发送的邮件格式比较固定,是一个固定的表格,我就想能不能做一个邮件的模板,这样在发送邮件的时候只需要将内容填充上去,而不需要像之前一样,每次都要重新拼邮件的内容. 下面先来看一下邮 ...

  5. java object 详解_Java基础之Object类详解

    类Object是类层次结构的根类.每个类都直接或者间接地继承Object类.所有对象(包括数组)都实现这个类的方法.Object类中的构造方法只有一个,并且是无参构造方法,这说明每个类中默认的无参构造 ...

  6. java pattern详解_JAVA正则表达式:Pattern类与Matcher类详解

    以下我们就分别来看看这两个类: 一.捕获组的概念 捕获组可以通过从左到右计算其开括号来编号,编号是从1 开始的.例如,在表达式 ((A)(B(C)))中,存在四个这样的组: 1        ((A) ...

  7. 一个不错的MYSQL数据库备份类,PHP版,一个文件,精简版

    1 <?php 2 class DbManage { 3 var $db; // 数据库连接 4 var $database; // 所用数据库 5 var $sqldir; // 数据库备份文 ...

  8. java properties文件 安全_java 数据库读取工具类(读取config.properties配置文件)[包含线程安全] | 学步园...

    java 数据库读取工具类(读取config.properties配置文件)[包含线程安全] 数据库读取工具类 package com.db; import java.sql.Connection; ...

  9. java如何遍历字典_Java中如何遍历Map对象的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

最新文章

  1. 左神算法:在二叉树中找到累加和为指定值的最长路径长度(Java版)
  2. 用WPF做了几个小游戏
  3. BZOJ2333 [SCOI2011]棘手的操作 【离线 + 线段树】
  4. activiti5第一弹-----基本的activiti示例
  5. python如何打印txt文件_在Python中的.txt文件中打印特定行?
  6. 微网站|h5弹窗|手机网站 html5 弹窗、弹层、提示框、加载条
  7. 初识Python导图笔记
  8. 【bzoj5001】搞事情 暴力
  9. python json函数_Json概述以及python对json的相关操作
  10. 呼吸灯程序(非阻塞)
  11. pycharm文件名颜色含义
  12. 小米MiSans字体安装教程
  13. c语言字母排列组合的实现,c语言中一种典型的排列组合算法
  14. 数据科学必备用Python进行描述性统计数据分析详解
  15. [论文总结] 森林生态系统中的水生生境
  16. derby数据库连接操作
  17. 高德API支持WMS服务器,GCJ02-Correct
  18. Python datetime 模块之timedelta
  19. android 9华为p20,华为P20PRO升级EMUI9.0(安卓9.0)的一些感受
  20. 广告是如何跟踪我们的?所有关于 cookie

热门文章

  1. 如何批量给word文档重命名?
  2. 比超级兔子和优化大师更好用的系统优化工具
  3. 2020终究不是平凡的一年
  4. 排查思路-Dell R730xd PCIe 指示灯和运行状况指示灯闪烁显琥珀色
  5. 那个冬天(摘自联商水园里上尉的帖子)
  6. rabbitmq无用使用guest用户远程连接
  7. 我的创作纪念日 - 拥抱AI时代
  8. H1B通过率95%,平均薪资170k,还有坑位保我狗命吗?
  9. SSM框架实战详细教程(三)IDEA+Maven搭建项目
  10. 东南大学蒲自源教授招收硕士/博士/博士后(交通视觉感知车路协同)