封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
一、Java规定的四种权限修饰
-
权限从小到大:private < 缺省 < protected < public
-
具体的修饰范围:
-
权限修饰符所修饰的结构说明:
(1)4种权限可以修饰类的内部成员:属性、方法、构造器、内部类
(2)类本身可以使用2种权限修饰:缺省、public
(3)使用权限修饰符修饰相应的结构,体现这个结构被调用时可见性的大小
二、为什么使用封装性呢
(1)通过隐藏对象的属性来保护对象内部的状态(隐藏信息实现细节)
(2)可以提高代码的可用性和可维护性。因为对象的行为可以被单独的改变或者是扩展
(3)禁止对象之间的不良交互,提高模块化(良好的封装可以提高耦合)
(4)可以对成员变量进行更精确的控制
(5)保证类内部数据间的一致性,从而提高软件的可靠性
三、抽象和封装有什么不同呢
抽象和封装是互补的概念。一方面,抽象关注对象的行为。另一方面,封装关注对象行为的细节。一般是通过隐藏对象内部状态信息做到封装,因此,封装可以看成是用来提供抽象的一种策略。
四、如何实现Java封装
Java中通过将数据声明为私有的(private),再提供公共的方法来实现对属性的操作以实现以下目的:
(1)隐藏一个类中不需要对外提供实现细节
(2)使用者只能通过实现定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
(3)便于修改,增强代码的可维护性
【补充】
1.属性封装格式:
private 属性类型 属性名称; // private修饰的成员在自己所在的类中可以使用,在类外边不可以使用
2.方法封装格式:
private 方法返回值 方法名称(参数列表){}
五、封装性思想具体代码的体现
体现一:私有化类的属性,提供公共的get()和set()去访问和设置
体现二:类中提供私有的方法,表明此方法只能在类内部被调用
体现三:如果此类只希望在本包内被调用,则可声明为缺省状态
体现四:单例模式