面向对象的特征一:封装和隐藏

高内聚,低耦合是设计程序时经常提到的原则,意思是:类的内部数据操作细节自己完成,不允许外部干涉;仅对外暴露少量的方法用于使用。好处是:可隐藏对象内部的复杂性,只对外公开简单的接口,便于外界调用,从而提高系统的可扩展性、可维护性。

因此,引出了封装性的设计思想,就是把该隐藏的隐藏起来,该暴露的暴露出来。

 

 一、问题的引入

当我们创建一个类的对象以后,可以通过对象.属性的方式,对对象的属性进行赋值。这里赋值操作要受到属性的数据类型和存储范围的制约。除此之外,没其他制约条件。

但是,在实际问题中,我们往往需要给属性赋值加入额外的限制条件。这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。同时,我们需要避免用户再使用对象.属性的方式对属性进行赋值,则需要将属性声明为私有(private)-----》此时,针对于属性就体现了封装性。


 二、封装性的体现

  1. 将类的属性私化private,同时,提供公共的public的方法来获取get和设置set此属性。
  2. 不对外暴露的私的方法。
  3. 单例模式...

三、实现方法
封装性的体现需要权限修饰符来配合:

  • java规定的4种权限:从小到大--private、缺省、protected、public。

修饰符         类内部           同一个包        不同包的子类        同一个工程
private         yes
缺省             yes                yes
protected     yes                yes              yes
public          yes                yes              yes                      yes

  • 4种权限可以用来修饰类的内部结构:属性、方法、构造器、内部类。
  • 修饰类的话,只能使用缺省或public。

posted @ 2021-05-24 12:28  泥鱼生长  阅读(120)  评论(0)    收藏  举报