属性与字段的区别

都说属性安全,为什么说是安全呢,因为你可以通过它间接操作私有字段,有人会问但这不也照样操作了私有字段了怎么会安全呢?区别在于你可以通过用属性的get,set方法对程序外部的赋值操作进行控制,比如你的私有字段的取值范围在0~100,如果你直接操作字段,就不能控制它的范围,想控制它的范围你只能通过一个方法来赋值,进而控制它的取值,这样赋值就不容易被恶意程序篡改,因为我们在这个方法中对传进来的值进行了判断、处理等,但是这又出现了一个问题,就是我们每次要对一个字段进行操作就要声明一个方法,而一个程序里面字段应该有成千上万个,就是说我们得对每一个字段都声明一个方法,这样就不太好了,因此就有了属性的概念(这个因此是我自己觉得的),而属性也是一种方法,通过属性这个规范的操作,我们就不用特意去为每一个字段声明一个函数来对其进行控制,这样就可以方便我们去控制字段的操作,将非法的取值赋值隔绝掉,这就是属性比字段安全的原因(这是个人认为的)。

原文地址:https://www.cnblogs.com/LJP-JumpAndFly/p/3271741.html