我们都知道类有三大特性:继承,封装,多态。本篇文章就是要介绍如何实现类封装的特性。
首先,我们需要明确,类有哪些属性,即:权限修饰符,变量,方法。所以我们要想让类具有很好的封装性,那么我们就需要从上面三种属性入手。
一、权限修饰符
权限修饰符有:pulic,protected,default,private。对于类来说,如果涉及到非public的类,那么都是内部类。待后续补充。
二、变量
类的变量大致可以分为三种:静态变量,成员变量,局部变量。其中静态变量使类级别,成员变量是对象级别,局部变量则是方法级别。
那么我们如何设计好类中的每一个变量呢?我们可以遵循一个固定的原则:
1、使用private修饰变量,避免其他类能直接修改变量。
2、使用final修饰公共变量(如果这个变量是不可变的)
3、如果变量使可变的,比如长度大于0的数组,或者是拥有set方法(获取其他可以修改对象中变量的方法)的对象。那么可以提供一个静态方法,并且对这个对象做好深拷贝之后暴露出去,这样就可以保证类的可变性最小。
三、方法
类的方法分为静态方法和成员方法两类。我们要保证我们暴露出去的API不会返回类中的域。