为什么要使用访问修饰符?
现实中:每个人都有自己的隐私和公开内容。
开发中:有时开发者在设计类的时候,一些成员(字段、属性、方法)无需提供给调用者。
好处:充分体现面向对象里面的“封装"特性(OOP三大牛剖性:封装、继承、多态)
作用:保证数据安全,方便调用者使用(如果成员很多,调用者使用比较困难)
访问修饰的类型
private:只能在类的内部使用.
public:在州可地方这个成员都能被使用.
默认:类的方法、字段默认都是private,类的本身不写的话,默认是internal.
关于字段:
字段又称为“成员变量,,一般用来在一个类的内部做数据交互使用,通常是private修饰。
字段命名规范:一般采用camel命名法,首字母小写,第二个单词字母大写
字段在对象创建中会首先被初始化(通过断点观察)(默认值用断点观察不到)
例:private string studentName="";
属性概述:
在OOP中,主要使用属性来描述对象的静态特征。
属性一般采用Pascal命名法,数据类型和对应字段一致。
属性是外界访问私有字段的一个入口,属性本身不保存任何数据。
使用属性能避免非法数据
实践用法:通常在get或set方法中可以添加需要的业务逻辑.
对比:相当于数据库中的“约束”,因为约束是保证数据有效性的最后一个屏障。
可以设置只读属性
有些属详为了保护数据,我们可以设置成只读,而不能赋值
方法:将set方法去掉即可。
经验:可以替代readonly.
属性可以单独存在
有时候没某一个属性值可能不是直接返回一个对应私有字段的值,而是调用一些方法,或其他业务逻辑。
自动属性
使用特点
简化代码,私有字段编译器自动生成·
只适合于标准属性。
不能添加任何业务逻辑。
适用条件
不能直接操作私有字段。
不能使用只读、只写属性。
字段与属性的总结与比较
字段(成员变量)
字段主要是为类的内部做数据交互使用,字段一般private
我们可以给字段赋值,也可以取值。
当字段需要为外部提供数据时,将字段封装为属性,而不是公有化字段。
属性
属性一般是向外部提供数据访问,主要用来描述对象的静态特征,所以一般是public。
属性可以设置成只读、只写,提高数据安全性。
属性内部可以添加业务逻辑,从而避免非法数据。