巅峰迎来虚伪的拥护,黄昏见证真正的信徒。
一、什么是封装?
封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。(就是将属性和方法封装到添加访问修饰符来限制访问权限,来达到信息隐藏的目的)
二、封装的好处
- 将变化隔离,即内部功能的细节变化不影响使用。
- 便于使用,即不同了解内部的具体实现。
- 提高安全性。即只对外暴露一些简单的内容提供使用。
- 提高重用性
三、封装的原则
- 将不需要对外提供的内容都隐藏起来。
- 将属性都隐藏,提供公共方法对其访问。
四、访问修饰符
- public(公开的):该类或非该类均可访问,权限最大。
- private(私有的):只有该类可以放访问,权限最小。
- protected(受保护的):该类及子类的成员可以访问,同一个包中的类也可以访问。
- 默认:同一个包中的类可以访问。
封装实例:
public class PersonDemo {
public static void main(String[] args) {
Person p=new Person();
p.age=21;
p.speak();
}
}
class Person{
public int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
上图中,如果p.age=-21的话,就会出现安全隐患,我们可以使用访问修饰符控制权限。使用pricate 私有化后,我们需要对外提供访问方式,即getter和setter方法操作。需要给这个年龄提供对外访问方式。
五、属性封装的实现
- 修改属性的可见性来限制对属性的访问。
- 为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于公开对这些属性的访问接口。
注意:除非公开底层实现细节,否则应该将所有属性指定为private加以封装,让外界不能直接访问修改,只 能对外界提供set/get方法。使用属性封装,通过增加数据访问限制,增强了类的可维护性。