C#属性的理解:
属性其实就是外界访问私有字段的入口,属性本身不保存任何数据,在对属性赋值和读取的时候其实就是操作的对应私有字段
属性就是对字段的封装,本质其实就是一个方法 ,等价于 字段 加上 set、get 方法,set给某字段写入数据,get读取某字段的数据
属性的作用
A.避免出现不合理数据,我们通过属性的set方法加入判断逻辑,从而排除这种不合理数据。
B.限定属性只读(取值)或者只写(赋值),例如有些属性为了保护数据,我们只能读取,而不能赋值。
C.没有对应私有字段的属性,例如根据生日属性获取到年龄。
字段(成员变量)
a.字段主要是为类的内部做数据交互使用,字段一般是private。
b.字段可读可写。
c.当字段需要为外部提供数据的时候,请将字段封装为属性,而不是使用公有字段(public修饰符),这是面向对象思想所提倡的。
属性(方法)
a.属性一般是向外提供数据,主要用来描述对象的静态特征,所以,属性一般是public。
b.属性具备get和set方法,可以在方法里加入逻辑处理数据,灵活拓展使用。
字段的理解
一般吧类或结构中定义的变量和常量叫字段。
字段分为:静态字段,实例字段,常量字段和只读字段。
常量字段:用const修饰符声明的字段为常量,常量只能在声明中初始化,以后不能再修改。
静态字段:用修饰符static声明的字段为静态字段。不管包含该静态字段的类生成多少个对象或根本无对象,该字段都只有一个实例,静态字段不能被撤销,必须采用如下方法引用静态字段:类名.静态字段名。
实例字段:类中定义的字段不使用修饰符static,该字段为实例字段,每创建该类的一个对象,在对象内创建一个该字段实例,创建它的对象被撤销,该字段对象也被撤销,实例字段采用如下方法引用:实例名.实例字段名。
只读字段:只读字段是特殊的实例字段,它只能在字段声明中或构造函数中重新赋值,在其它任何地方都不能改变只读字段的值
其实字段与属性的作用域是是由访问修饰符来决定的
private : 私有成员, 在类的内部才可以访问。
protected : 保护成员,该类内部和继承类中可以访问。
public : 公共成员,完全公开,没有访问限制。