在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。安全
封装能够被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。this
要访问该类的代码和数据,必须经过严格的接口控制。spa
封装最主要的功能在于咱们能修改本身的实现代码,而不用修改那些调用咱们代码的程序片断。设计
适当的封装能够让程式码更容易理解与维护,也增强了程式码的安全性。code
1. 良好的封装可以减小耦合。对象
2. 类内部的结构能够自由修改。blog
3. 能够对成员变量进行更精确的控制。接口
4. 隐藏信息,实现细节。get
1. 修改属性的可见性来限制对属性的访问(通常限制为private),例如:io
1 public class Person { 2 private String name; 3 private int age; 4 }
这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其余类都访问不了,如此就对信息进行了隐藏。
2. 对每一个值属性提供对外的公共方法访问,也就是建立一对赋取值方法,用于对私有属性的访问,例如:
1 public class Person{ 2 private String name; 3 private int age; 4 5 public int getAge(){ 6 return age; 7 } 8 9 public String getName(){ 10 return name; 11 } 12 13 public void setAge(int age){ 14 this.age = age; 15 } 16 17 public void setName(String name){ 18 this.name = name; 19 } 20 }
采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突。