我谈一下自己的实际工作经验
用一个类来举例
1、读 属性
这个类有几个变量,有人要访问这几个变量取数据,但是这些变量是不准许随便赋值的,而且是私有的,在类外部没法访问,这个时候可以建立一个只读的属性给别人用,这个属性就负责读取这个变量。
2、写 属性
还是这个类,你要给类中的某个变量赋值,但是变量是私有的,你无法在类的外部赋值,这个时候就要用到写 属性来完成。
3、将 读、写属性都设置成公有public ,就可以在类的外部进行访问。
相当于你去银行取钱、存钱,你不可以随便进金库然后自己操作。
银行的窗口就相当于属性,工作人员帮你存钱、取钱,
存钱就是写属性,取钱就是读属性。
从面向对象的角度来谈这个问题叫封装字段(如果还记得面向对象的三大特点)。
如果可以直接存取变量Year,那么我可以输入-1这样的年份。
如果你希望限定在1930--2030年,那么就可以在set访问器中进行判断。
比方说Age这个字段,是需要通过Birthday和当前日期来计算的,那么你可以在get访问器中去计算,而对用户来说,是透明的。另外,集合中的Count也是如此,如果是存为具体的变量,那么当集合的元素发生变化的时候,总是需要去修改Count所保持的变量。而用属性的话,每次访问Count的时候,动态去计算就行了。