什么是封装:对象中的成员该隐藏的隐藏、该公开的要公开
封装:顾名思义,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装的目的
增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权限来使用类的成员。
封装的大致原则:
1、把尽可能多的东西藏起来.对外提供简捷的接口.
2、把所有的属性藏起来.
3、封装好处:将变化隔离;便于使用;提高重用性;安全性。
访问控制修饰符Modifiers
可以修饰:属性、方法、构造方法、类
public protected 默认不写 private
公开的 受保护的 私有的
从上到下:作用范围递减
修饰符\作用范围 本类 同包 子类 其它
public OK OK OK OK
protecetd OK OK OK
默认不写 OK OK
private OK
1、属性的封装
(1)属性私有 private修饰 本类内部可见,保证对象数据的安全
(2)提供getter、setter方法来读取或改写属性值
2、方法的封装
常用public、protecetd、private来修饰方法,具备不同的可见性。
public: 任何作用域都可见
protecetd: 常用于父类需要继承给子类的方法
private: 只有本类内部可以使用
public和private有何区别? (BS MS)
来自于项目中的经验和总结:
1)public修饰的方法才算作工作量。
2)public修饰的方法需要增加后期的维护成本。
3、构造方法的封装
构造方法一般使用public修饰:外界可以直接new对象,会间接调用其构造方法
public Animal(){}
如果构造方法使用private修饰:外界就不能new对象
private Animal(){}