第六节: 本节学习属性、数据类型、方法参数吧

一、属性

由于面向对象的封装特性,通常不会把字段直接设置成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同时使用)