1. 前言:面向对象的目的就是抽象和封装;在类中,变量是对类本身而言,可以称之为域,也可以是Private和Public等。属性是外部显示出来的特性。虽然可以把域声明为Public的,但是这么做不利于类的封装,因为外部使用者可以对类进行直接修改。属性控制了外部使用者对该域的使用和控制,如何控制,则可以放在类进行封装。
2. 属性更多的体现了对象的封装性,不直接操作类的数据内容,而是通过访问器进行访问。借助于get和set对属性进行读写和执行语句的操作。属性还有以下几个用法:
a) 可以允许在数据更改前验证数据。
b) 他们可以透明的公开某个类的数据,该类的数据实际上市从其他源数据检索到的。
c) 当数据被修改时,他们可以采取行动,例如引发事件或者更改其他字段的值。
3. 两个有以下区别:
a) 属性是对字段的封装。
b) 属性可以控制读写,而变量不可以。
c) 属性可以进行赋值操作,变量不可以。
d)对一个对象进行数据绑定时,属性是可以绑定的,但是公共变量不行。