详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写

yizhihongxing

让我详细解释一下如何使用建造者模式创建一个女朋友类。

建造者模式

建造者模式是一种创建型设计模式,通过一步一步构建复杂对象,最终形成一个完整的对象。在使用建造者模式时,我们可以将对象的构建过程抽象出来,通过不同的特定构建器组合这些步骤来构造出最终的对象。

创建女朋友类

下面就来创建一个女朋友类吧!首先,我们要定义一个Girlfriend类,它包含一些属性,例如姓名、年龄、身高等。

public class Girlfriend {
    private String name;
    private int age;
    private int height;

    public Girlfriend(String name, int age, int height) {
        this.name = name;
        this.age = age;
        this.height = height;
    }

    @Override
    public String toString() {
        return "Girlfriend{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", height=" + height +
                '}';
    }
}

在这里,我们创建了一个Girlfriend类,并为其定义了三个属性:姓名、年龄和身高。我们还编写了一个构造函数,可以使用这个构造函数来创建一个Girlfriend对象。

现在,我们将使用建造者模式创建Girlfriend类的对象,并且可以使用一键重写方法来实现对象属性的修改。下面我们来看看怎么做。

public class GirlfriendBuilder {
    private String name;
    private int age;
    private int height;

    public GirlfriendBuilder() {
    }

    public GirlfriendBuilder withName(String name) {
        this.name = name;
        return this;
    }

    public GirlfriendBuilder withAge(int age) {
        this.age = age;
        return this;
    }

    public GirlfriendBuilder withHeight(int height) {
        this.height = height;
        return this;
    }

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

在这里,我们创建了一个GirlfriendBuilder类,它包含了Girlfriend类中定义的三个属性,并提供了一些设置属性值的方法。例如,我们可以使用withName()方法设置女朋友的姓名,使用withAge()方法设置女朋友的年龄,使用withHeight()方法设置女朋友的身高。

最后,我们创建一个build()方法,返回一个Girlfriend对象,这个方法将使用之前设置的属性值来构造一个Girlfriend对象。

示例

现在,我们将使用上面定义的GirlfriendBuilder类来创建Girlfriend对象,并演示如何使用一键重写方法来修改Girlfriend对象的属性。下面,我们用两个示例来说明这个过程。

示例一

我们首先定义一个Girlfriend对象,然后使用一键重写方法来修改它的属性。

Girlfriend girlfriend = new GirlfriendBuilder()
        .withName("Lucy")
        .withAge(18)
        .withHeight(170)
        .build();
System.out.println(girlfriend);
// 输出:Girlfriend{name='Lucy', age=18, height=170}

girlfriend = new GirlfriendBuilder(girlfriend)
        .withAge(20)
        .build();
System.out.println(girlfriend);
// 输出:Girlfriend{name='Lucy', age=20, height=170}

在这里,我们首先创建了一个Girlfriend对象,然后使用withName()、withAge()和withHeight()方法来设置这个对象的属性。接着,我们使用build()方法来创建Girlfriend对象。最后,我们将Girlfriend对象传递给GirlfriendBuilder的构造函数,并使用withAge()方法修改Girlfriend对象的年龄属性。再次打印Girlfriend对象时,我们可以看到Girlfriend对象的年龄已经被修改为20岁。

示例二

在这个示例中,我们将展示如何通过一键重写方法来克隆一个Girlfriend对象。

Girlfriend girlfriend1 = new GirlfriendBuilder()
        .withName("Lucy")
        .withAge(18)
        .withHeight(170)
        .build();
System.out.println(girlfriend1);
// 输出:Girlfriend{name='Lucy', age=18, height=170}

Girlfriend girlfriend2 = new GirlfriendBuilder(girlfriend1)
        .withName("Lily")
        .build();
System.out.println(girlfriend2);
// 输出:Girlfriend{name='Lily', age=18, height=170}

在这里,我们首先创建了一个Girlfriend对象,并设置其属性为姓名为Lucy、年龄为18岁、身高为170厘米。接着,我们使用GirlfriendBuilder的构造函数来克隆Girlfriend对象,并使用withName()方法将姓名修改为Lily。再次打印Girlfriend对象时,我们可以看到Girlfriend对象的姓名已经被修改为Lily。

这就是通过建造者模式创建Girlfriend类的完整攻略。我们创建了一个Girlfriend类,然后使用GirlfriendBuilder类来构建Girlfriend对象。通过使用一键重写方法,我们可以轻松地修改和克隆Girlfriend对象。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写 - Python技术站

(1)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Spring Boot 整合持久层之JdbcTemplate

    下面是详细讲解”Spring Boot 整合持久层之 JdbcTemplate” 的完整攻略: JdbcTemplate 简介 JdbcTemplate 是 Spring Framework 提供的一种针对 JDBC 操作的一个简化封装框架,帮助开发者摆脱繁琐的 JDBC 操作代码,提供了一组方法来方便地操作数据库。 JdbcTemplate内部封装了Jdb…

    Java 2023年5月19日
    00
  • Java_Spring之Spring5 的新特性

    Java Spring之Spring5 的新特性 简介 Spring是一个著名的开源框架,它旨在简化企业级应用程序的开发。Spring5是Spring框架的最新版本,它引入了许多新的功能和改进,以使应用程序的开发和管理更加容易。本文将介绍一些Spring5的新特性,帮助您更好地了解Spring5的能力。 Spring5的新特性 1. 支持Java8 Spri…

    Java 2023年5月31日
    00
  • 虚引用的作用是什么?

    虚引用(Phantom Reference)是Java中一种比较特殊的引用类型,和软引用、弱引用类似,虚引用不会影响垃圾回收对象的生命周期,但是虚引用主要是用于对象被回收时的通知。 虚引用主要有两个作用: 控制对象回收时机 虚引用被实例化时需要与一个引用队列相关联,当对象被垃圾回收器标记为回收时,虚引用会被放入引用队列中,这时我们就可以通过判断引用队列中是否…

    Java 2023年5月10日
    00
  • SpringBoot 自动扫描第三方包及spring.factories失效的问题

    为什么会找不到 Spring 依赖注入 就是要让spring找到要注入的类 并且识别到了 @Component、@Service 等注解。 1. 当在开发的第三方包里写明了 @Component、@Service 等等 2. 引入了包,不论第三方库的引入,还是本地jar。总之是要引入到工程的 这时候还加入不到 IOC 容器,那就说明SpringBoot工程没…

    Java 2023年5月6日
    00
  • SpringSecurity跨域请求伪造(CSRF)的防护实现

    为了防止SpringSecurity跨域请求伪造(CSRF)攻击,需要采取一些措施来进行防护实现。下面是实现CSRF防护的步骤: 1.同源检查 这是最常见的CSRF防护方法,包括验证请求的源(Origin),或者Referrer)与app地址是否相同,建议把这个配置在Spring Security中,只需在SpringSecurity的配置类中添加如下代码:…

    Java 2023年5月20日
    00
  • Java如何实现支付宝电脑支付基于servlet版本

    Java 如何实现支付宝电脑支付基于 Servlet 版本,具体的实现步骤如下: 1. 注册支付宝商家账号 首先需要注册一个支付宝商家账号。 2. 下载支付宝开发者工具包 下载支付宝提供的开发者工具包,官方推荐使用 Java 版本的 SDK。 3. 创建订单 在进行支付前需要创建一个订单,在创建订单时需要填写订单的一些基本信息,例如订单金额、商品名称、订单号…

    Java 2023年5月26日
    00
  • 33基于Java简单实现图书馆借书管理系统设计与实现

    本章节给大家介绍一个基于Java简单实现图书馆借书管理系统的设计与实现 项目概述 项目总体分为俩种角色,分别是管理员和阅读者,管理员可以登录系统中,进行图书管理,上架下架图书,对用户进行管理、对读者进行管理、查看借阅记录管理等,读者角色可以登录系统查询图书信息、借阅和归还图书、查看个人借阅记录、编辑个人信息等。 项目功能简单,数据库也只有4张表,分别为管理员…

    Java 2023年5月8日
    00
  • java OOM内存泄漏原因及解决方法

    Java OOM内存泄漏原因及解决方法 前言 Java内存泄漏(Memory Leak)是指程序中已经不再用到的内存,因为某些原因没有被释放,导致这部分内存永远无法被使用,从而引起内存的浪费。内存泄漏会导致系统的性能降低,甚至会导致系统奔溃。下面将详细介绍Java OOM内存泄漏的原因及解决方法。 OOM内存泄漏原因 长生命周期对象持有短生命周期对象的引用 …

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部