0 写在前面

1、 良好的封装能够减少耦合。

2、类内部的结构可以自由修改。

3、可以对成员变量进行更精确的控制。

4、隐藏信息,实现细节。

1 进行封装

修改属性的可见性来限制对属性的访问,即将属性设置为私有的(private):
例如定义一个类,将他的属性设置为private

public class Notice {
   private Integer id;

   private String noticeUuid;

   private Date creationTime;

   private String creationName;

   private String noticeContent;

}

这样就完成了对类的封装。

2 访问数据

对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。
需要设置:

获取数据:get方法。
设置数据:set方法。
有参构造,无参构造。toString重写

此时可以使用IDEA的代码生成,快捷键为Alt+INSERT;在这里插入图片描述


public class Notice {
    private Integer id;

    private String noticeUuid;

    private Date creationTime;

    private String creationName;

    private String noticeContent;

    public Notice() {
    }

    public Notice(Integer id, String noticeUuid, Date creationTime, String creationName, String noticeContent) {
        this.id = id;
        this.noticeUuid = noticeUuid;
        this.creationTime = creationTime;
        this.creationName = creationName;
        this.noticeContent = noticeContent;
    }

    @Override
    public String toString() {
        return "Notice{" +
                "id=" + id +
                ", noticeUuid='" + noticeUuid + '\'' +
                ", creationTime=" + creationTime +
                ", creationName='" + creationName + '\'' +
                ", noticeContent='" + noticeContent + '\'' +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNoticeUuid() {
        return noticeUuid;
    }

    public void setNoticeUuid(String noticeUuid) {
        this.noticeUuid = noticeUuid;
    }

    public Date getCreationTime() {
        return creationTime;
    }

    public void setCreationTime(Date creationTime) {
        this.creationTime = creationTime;
    }

    public String getCreationName() {
        return creationName;
    }

    public void setCreationName(String creationName) {
        this.creationName = creationName;
    }

    public String getNoticeContent() {
        return noticeContent;
    }

    public void setNoticeContent(String noticeContent) {
        this.noticeContent = noticeContent;
    }
}

使用举例:

import java.util.Date;
import java.util.UUID;

public class Test {
    public static void main(String[] args) {
        Notice notice1 = new Notice();//无参构造
        Notice notice2 = new Notice(2, UUID.randomUUID().toString(),new Date(),"张三","嘎嘎嘎");//有参构造

         //使用set方法设置属性内容
        notice1.setId(1);
        notice1.setNoticeUuid(UUID.randomUUID().toString());
        notice1.setCreationTime(new Date());
        notice1.setCreationName("小腾");
        notice1.setNoticeContent("我是内容嘛");

        //使用get获取属性内容
        Integer id = notice2.getId();
        String noticeUuid = notice2.getNoticeUuid();
        Date creationTime = notice2.getCreationTime();
        String creationName = notice2.getCreationName();
        String noticeContent = notice2.getNoticeContent();

        //输出notice1,看set()方法是否成功设置内容
        System.out.println(notice1);

        //输出各个属性,看get()方法是否成功获取内容
        System.out.println(id+"---"+noticeUuid+"---"+creationTime+"---"+creationName+"---"+noticeContent);

    }
}

以上,成功运行
在这里插入图片描述

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐