公共字段只是类用public修饰符所公开的简单公共变量,
而属性则是对字段的封装,它使用get和set访问器来控制如何设置或返回字段值。由于属性的实质是方法(get或set方法)
公共字段虽然在速度上快,但它必须开放字段为public,这样一来对象的调用者便可以直接修改其值,值的内容是否合法,运行中是否会出错,就没有了保障,进而会大大降低类的可重用性;相反,属性类似于方法,它可以对存入的变量的值进行处理,如果觉得该值不合法,可以就地变换或者直接提出警告。这对该类的对象的使用安全有很大好处,在运行过程中,因公共变量值的错误而产生的问题会大大减少。
使用公共字段:
1. 允许自由读写;
2. 取值范围只受数据类型约束而无其他任何特定限制;
3. 值的变动不需要引发类中其它任何成员的相应变化;
属性的使用条件:
1. 要求字段只能读或者只能写;
2. 需要限制字段的取值范围;
3. 在改变一个字段的值的时候希望改变对象的其它一些状态;
总结:
尽可能的使用属性(property),而不是数据成员(field)。
把所有的字段都设为私有字段,则把它们封装成属性,字段就是作用于整个类的变量。
问题:什么情况下选择使用字段还是属性?
属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。
网友评论