软件开发追求的境界:高内聚,低耦合。
高内聚:尽可能把模块的内部数据,功能实现细节隐藏在模块内部独立完成,不允许外部直接干预
低耦合:仅暴露少量的方法给外部使用
封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,通过该类所提供的方法来实现对内部信息的操作和访问。
理解封装
对一个类或对象实现良好的封装,可以实现以下目的:
1),隐藏类的实现细节
2),让使用者只能通过实现预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问
3),还可以进行数据检查,有利于保证对象信息的完整性
4),便于修改,提高代码的可维护性
为了实现良好的封装,需要从2个方面来考虑:
1),把对象的属性和实现细节隐藏起来,不允许外部直接访问
2),把方法暴露出来,让方法来控制对这些属性进行安全的访问和操作
因此,封装实际上有两个方面的含义,把该隐藏的隐藏起来,把该暴露的暴露出来。
去餐馆吃饭,我们只要能吃到菜就OK了,至于这个厨师长啥样,单眼皮还是双眼皮,怎么做的菜,用了什么牌子的地沟油,我们都没必要知道。我们使用的电脑其实就是体现了封
装的思想,它里面什么网卡,声卡是怎么插放的,怎么设计的,我们不要知道,我们只需打开电脑就可以用了。这就如同找一个人来修电脑,只需要知道修好了还是没修好。至于
他怎么修的可以不用了解。可是封装好了,外界怎么使用呢?(向外暴露一些简单的入口,供使用)
方法是类中最小的封装体,那么类也一样是一种封装形式,有写方法需要暴露出去,有些就不用。
使用访问控制符
Java提供了4个访问控制符,private,default,protected,public,从左到右访问控制级别由小到大