CPU把所有的电阻电容门电路等都封装起来,只留出一些管脚(接口)让用户使用,CPU能暴露什么,不能暴露什么,是生产商设计决定的,用户不能直接操作CPU的电阻电容等等,但可以通过給管脚适当的电压来控制电阻电容等,也就是说用户不能直接访问CPU的属性,但是可以通过方法修改CPU的属性的值。
同样的一个类也是把属性算法(逻辑处理)封装起来,只留必要的方法(接口)让用户使用,一个类该暴露什么,不该暴露什么,由类的设计者根据需求设计决定的。private属性用户不能直接访问,如果设计者提供相应的接口方法,那么用户可以通过该接口方法访问。
有人可能就会说了,通过方法能修改属性不是多此一举么,因为直接给属性赋值不是更加简单粗暴?
直接修改相当于不经过门电路直接给CPU的电阻电容等元件输个电压,这样这个电压(电流)是否超载不能有效保证,元件就有可能被烧坏,所以提供相应的方法访问属性,可以在方法中做相应的控制。同样的,一个类,不直接修改属性而通过方法来修改,可以在方法里做相应的处理避免用户输入的一些非法数据而造成系统故障。
封装实现步骤:
1.@public修饰去掉,默认是@protected
2.写一个为属性赋值的方法,再写取属性值的方法
3.在赋值方法里对数据进行加工
4.使用的时候直接调用方法
封装的另一个好处:
可以控制是否只读,或者只写;
只封装读的方法,那么就是只读,如果只封装赋值,那么就是只写;
如果两个都封装就是可读可写。