1、C#中的访问修饰符:
a) public 【公共的】访问不受到任何限制,级别最高。一般用于修饰方法,提供给其他类调用。
b) private 【私有的】只有类的内部可以使用,一般用于修饰字段,保证数据的安全性。
注:如果在成员定义之前没有指定访问修饰符,默认为internal,可理解为只能在本项目中访问。
2、C#中的this关键字:
可以看做是当前类的实例(对象),可以调用当前类的所有成员变量(字段)和方法。
This——this调用的是成员变量。当名字相同时,使用this可以获得当前对象(成员变量)。
3、属性
a) C#中使用属性对字段进行封装:使用get和set访问器。
相当于使用getset方法:
private string name;
public string GetName(){
return name;
}
public void SetName(string name){
this.name = name; }
注:(1)Get方法有返回值类型没有参数;(2)Set方法没有返回值有参数;(3)this表示当前类的对象。
b) 对字段的使用:
1、创建对象 如:Student stu=new Student(); 2、使用Set方法设置字段值 stu.SetName("张三"); 3、使用变量接收调用get方法得到的值 string name=stu.GetName(); 4、使用 Console.WriteLine(name); 5、停留 Console.ReadLine(); |
c) C#中的属性:在C#中私有字段通过get|set访问器进行访问实现,这种结合了字段和方法的实现方式叫做属性。
- 属性的语法:
private string _name;
public string Name
{
get{ return _name; }
set{ _name=value; }
}
注:自己的私有字段不给别人用,但是提供了可以让别人访问的公开方法,自己的方法可以调用自己的字段。定义类中的一个属性时,属性的数据类型必须和它所访问的字段类型一致。
- 对字段的使用:
1、创建对象:
如:Student stu=new Student();
2、给属性赋值
stu.Name="zhangsan";
3、用变量接收得到的属性值
string name=stu.Name;
4、使用
Console.WriteLine("name="+name);
5、停留
Console.ReadLine();
- 属性的作用:
控制私有字段的可访问性,保护内部数据的安全 。
- 属性的3种访问类型
- 只读属性——只包含get访问器
- 只写属性——只包含set访问器
- 读写属性——只包含get和set访问器
d) 封装字段:在C#中将类中的字段、属性绑到一起,使用属性对字段进行封装。
- 封装——封装是面向对象的三大特性之一。
- 好处——避免非法数据的访问,保证数据完整性。
*****************************************************************
类的成员——字段:数据|属性:读写状态|方法:操作行为
*****************************************************************
4、C#中的引用传递和值传递
a) 值传递
- 方法的定义:
访问修饰符 返回值类型 方法名(数据类型 值1,数据类型 值2.。。。)
{
//方法体
}
- 值传递参数的调用:对象名.方法名(值1,值2.。。。);
注:值传递只在方法中改变,却不返回改变,参数仍然是原来的值。
b) 引用传递
- 方法的定义:
访问修饰符 返回值类型 方法名(ref 数据类型 值1,ref 数据类型 值2.。。。)
{
//方法体
}
- 引用传递参数的调用:
对象名.方法名(ref 值1,ref 值2.。。。);
- 调用的注意事项:
- 定义和调用之前都需要加上ref
- 作为参数的变量必须声明和赋值
- 希望保留参数更改的时候使用
c) 比较值传递和引用传递——3.4.4
- 值传递——不能对原始数据进行修改
因:值传递是将变量的值复制一份给方法,使得方法的形参和实参的值相同,在调用的方法中修改形参也只是对实参复制品的数据做更新,并没有真正改变实参的值。
- 引用传递——对原始数据进行修改并保留
因:直接将数据引用,使得调用方法直接对引用对象进行更改,会影响实参原来的值。