封装概述
概述
封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的属性信息隐藏在对象内部,不允许外部程序直接访问对象内部属性信息,而是通过该类所提供的方法来实现对内部属性信息的操作和修改。封装是面向对象编程语言对客观世界的模拟,在客观世界里,对象的状态信息都被隐藏在对象内部,外界无法直接操作和修改。就如刚刚说的 Student 对象的 age 变量,只能随着岁月的流逝,age 才会增加,通常不能随意修改 Student 对象的 age。对一个类或对象实现良好的封装,可以实现以下目的。
-
隐藏类的实现细节,让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问,提高对内部属性信息的安全性。
-
可进行数据检查,从而有利于保证对象信息的完整性。
-
便于修改,提高代码的可维护性。
为了实现良好的封装,需要从两个方面考虑
-
将对象的成员变量和实现细节隐藏起来,不允许外部直接访问。
-
把方法暴露出来,让方法来控制对这些成员变量进行安全的访问和操作。
访问权限修饰符
除此之外,封装其实就是给程序中的属性信息,行为动作等加上不同的访问权限修饰符,以便控制程序的安全性。而且封装思想的核心就是给程序中不同的内容添加上不同级别的访问权限修饰符,Java中提供了三种访问权限修饰符和四种访问权限级别,它们的访问权限级别由小到大依次是:
-
private(当前类访问权限