前面我给小伙伴们分享了面向对象的基础,这里给大家分享的是面向对象的核心思想封装
。
什么是封装
封装又叫隐藏实现。就是隐藏属性,方法和方法实现细节的过程称为封装。它指的是将对象的状态信息隐藏在对象内容,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
隐藏属性
将所有的属性私有化,如果需要访问要通过get和set访问器。
隐藏方法
只通过对外接口,具体实现方法隐藏。
封装的实现
在程序设计中,封装往往通过访问控制来实现。通过public将信息暴露,private,protected将信息隐藏,来实现封装。
private:访问控制权限,如果类里的一个成员(包括属性和方法)使用private访问权限控制符来修饰,则这个成员只能在类的内部被访问。很显然,这个访问用来修饰属性更合适,使用它来修饰属性就可以把属性隐藏在类的内部。
default:访问控制权限,如果这个类的一个成员(包括属性和方法)或者一个顶级类不使用任何访问修饰符修饰,我们就称它是默认访问控制,default访问控制的成员或者顶级类可以被相同包下其他类访问。
protected:访问控制权限(子类访问权限),如果一个成员(包括属性和方法)使用protected访问控制符修饰,那么这个成员既可以被同包中其他类访问,也可以被不同包中的子类访问。通常是希望其子类来重写这个方法。
public:访问控制权限(公共访问权限),这是一个宽松的访问控制级别,如果一个成员(包括属性和方法)或者一个顶级的类使用了pubic修饰,这个成员或顶级类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否有父子继承关系。
Get和Set方法
为了数据的安全性,我们会经常会给我们的私有化变量去建立get和set方法去访问,并在中间进行一些保护设置。
封装的好处
- 封装使得对代码的修改更加安全和容易。将代码分成多个相对独立的单元。
- 封装是整个软件开发复杂度降低。
- 封装还避免了命名冲突的问题。
好的封装体现在那些方面
- 隐藏类的实现细节
- 让使用者只能通过先预定的方法来访问数据,从而可以在该方法加入控制逻辑,限制能动性属性的不合理访问。
- 可进行数据检查,从而有利于保证对象信息的完整性。
- 便于修改,提高代码的可维护性。
总结
关于面向对象——封装,我就总结这么多。它是Java面向对象的核心思想之一,在我们使用Java为底层开发语言的时候,我们会封装一些通用的类的。下一篇为大家分享的是面向对象——继承。