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);
}
}
以上,成功运行