第六节: 本节学习属性、数据类型、方法参数吧
一、属性
由于面向对象的封装特性,通常不会把字段直接设置成Public,就需要我们手动添加为字段赋值的方法;
为类中的字段手写Get和Set方法很麻烦,所以程序帮助我们自动封装了这两个方法,也就是属性。
属性的添加步骤:
1)添加一个私有字段
2)添加属性
格式:访问修饰符,属性类型,属性名
get{
return 字段名;
}
set{
字段名 = value;
}
a. 访问修饰符:约束属性的可见度
b. 属性的类型要和对应的字段类型一致
c. 属性的名字要和对应的字段的名字一致,但首字母大写,以便和字段进行区分
d. get方法:对属性进行取值操作,叫做访问器,直接返回对应私有字段中存储的值
e. set方法:对属性进行赋值操作,叫做设置器,取到系统隐藏参数value中存储的用户入的参数,并存储到对应的字段中
f. value:睡醒生成的方法,不需要参数,而是使用系统隐藏参数value取代,value中存储的就是用户输入的实际的值
q. 属性的优势:提高数据访问的安全性和灵活性
1. 不具有set访问器的属性被视为只读属性
2. 不具有get访问器的属性被视为只写属性
3. 同时具有这两个访问器的属性被视为只写属性
4.可以对属性内部get和set方法添加访问修饰符,来约束方法的可见度,但是仅当属性同时具有set和get访问器时,才能使用。并且只能对其中一个访问器使用修饰符.并且set或者get的访问修饰符优先级不能高于属性的访问修饰符的优先级。
二、数据类型
值类型:在栈中分配空间,由系统自动分配
引用类型:在堆中分配空间,由程序员使用“new”来分配
值类型和引用类型的不同点:
1)值类型的第二个变量改变不会影响第一个变量的量,因为两个变量使用的是不同的存储空间
2)引用类型的第二个变量的改变,会影响第一个变量的值,因为两个变量使用的是同一块内存空间
三、方法参数
c#中方法的参数有4种类型
1)值参数:不附加任何修饰符
2)引用参数:以ref修饰符声明的参数
3)输入参数:以out修饰符声明的参数,可以返回一个或者多个值给调用者
4)可变参数:以params修饰符声明,参数长度可变(可变参数--params:定义方法时,不能确定调用方法时传入多少参数,方法中就可以使用可变参数,可变参数只可使用一次,并且要放在列表的末尾,不能和ref,out同时使用)