从零开始学java (封装)
封装
封装是java面向对象的三大特征之一,简而言之封装就是将类的成员属性声明为私有,同时提供共有的方法实现对该成员属性的存取操作;
主要的实现目的:
隐藏类的实现细节,
让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入逻辑控制,限制对成员变量的不合理访问,
可进行数据的检查,从而有利于保护对象信息的完整性
便于修改,提高代码的可维护性
为了实现良好的封装,从下面两个方面去考虑如何封装一个对象
将对象的成员变量和实现细节隐藏起来,不允许外部直接访问
把方法暴露出来, 让方法来控制对这些成员变量进行安全的访问与操作。(就是你怎么操作限制我说了算,你需要的数据是什么样的我说了算,变量不是 你输入什么就会给你什么 当然根据实际的业务来说)
封装的好处
隐藏类的实现细节,让使用者只能通过程序规定的方法来访问数据,可以方便的加入存取控制语句,限制不合理的操作。
/** * 模拟一个业务中的javabean * @author GMZ * */ public class Person { //我们来封装四个 person这个类 的私有属性 private String name; private Integer age; private char sex; private String identity; //生成它的set与get方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } public String getIdentity() { //现在我们给这个身份中加一个去除空格的操作 trim方法是字符串去除空格 return identity.trim(); } public void setIdentity(String identity) { this.identity = identity; } }
这是一个简单的类的封装 ,在实际的应用中你可以重写类的toString方法,还有可能去写一个类的构造器,或者去重载一个或者多个构造器。
跟封装比较切合的还有一个设计模式 单例设计模式 https://www.cnblogs.com/Cgosling/p/9880076.html