C#笔记12 类:类成员补充02
——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。
写在前边
*复习:类是一种能存储数据并执行代码的数据结构,它包含:
- 数据成员——存储数据
包括:字段、常量 - 函数成员——执行代码
包括:方法,属性,构造函数,索引,运算符,事件,析构函数
上两篇笔记 C#笔记10 类:基础
C#笔记11 类:类成员补充01
已经介绍了九种类成员类型中的五种(字段,方法,常量,属性和索引)。这一篇将介绍更多类型的类成员(构造函数和析构函数)。
1. 构造函数
类的构造函数是类的一个特殊的函数成员,当一个类被实例化为一个对象时,将会调用构造函数完成对象的初始化
1.1 实例构造函数
实例构造函数在类的每个新实例创建的时候执行
声明方法:
//访问修饰符 类名(参数)
{
//初始化;
}
例:
class Student
{
private string name;
public Student(string name)
{
this.name=name;
}
}
1).没有返回类型,因为固定返回对应的对象
2).构造函数的方法名必须和类名一致
3).不指定时,将有一个默认构造(默认的构造函数没有任何参数)
4).如果指定,默认构造将会失效(但可重载出默认构造)
例:System命名空间中的Random类,它是由BLC提供的用于产生随机数的类,它默认的无参构造函数可以根据当前系统时钟为种子,进行一系列算法得出要求范围内的伪随机数。
this关键字:
1).用于区分类的成员和本地变量,或参数
2).作为调用方法的实参
- 指代自身的实例对象
- 指向自身的构造函数
1.2 静态构造函数
构造函数也可以声明为static,这个构造函数只会被执行一次。也就是在创建第一个实例或引用任何静态成员之前,由.NET自动调用。
通常,静态构造函数用来初始化静态的字段
1).没有返回类型,因为固定返回对应的对象
2).构造函数的方法名必须和类名一致
3).类只能有一个静态构造函数,而且不能带参数
4).静态构造函数不能有访问修饰符
5).类既可以有静态构造函数,也可以有实例构造函数
6).静态构造函数不能访问所在类的实例成员,因此也不能使用this关键字访问
7).不能从程序中显式调用静态构造函数,它们被系统自动调用
例:下边代码中,类A包括没有赋初始值的静态字段X,和静态构造函数,类B包括赋初始值的静态字段Y和静态构造函数。在Main函数执行时,.NET已经提前自动调用了两个静态构造函数,所以执行顺序为:
static A()下的 B.Y ==> static B()下的Console.WriteLine ==> static A()下的Console.WriteLine
class A
{
public static int X