admin 管理员组

文章数量: 1087135


2024年5月21日发(作者:中国spark网站)

.

构造函数

构造函数是特殊的方法,

构造函数是一个用来封装初始化的

程序运行的时候是先初始化变量在调用构造函数的

构造函数是一种特殊的成员函数,它主要用于为对象分配存储空间,对数据成员进行初始化.

构造函数具有一些特殊的性质:

(1)构造函数的名字必须与类同名;

(2)构造函数没有返回类型,没有返回值,它可以带参数,也可以不带参数;

(3)声明类对象时,系统自动调用构造函数,构造函数不能被显式调用;

(4)构造函数可以重载,从而提供初始化类对象的不同方法;

(5)若在声明时未定义构造函数,系统会自动生成默认的构造函数,此时构造函数的函数体为空.

(6)静态构造函数,用static修饰,用于初始化静态变量,一个类只允许有一个构造函数,在类实例化时加

载,这时修饰符public、private失去作用.

(7)可以使用public、protected、private修饰符。.

(8)引用父类构造时用():base()方法,引用自身重载的构造使用():this(intpara).

(7)可以使用public、protected、private修饰符。

使用构造函数:

构造函数是在创建给定类型的对象时执行的类方法。构造函数具有与类相同的名称,它通常初始化

新对象的数据成员。

在下面的示例中,使用一个简单的构造函数定义了名为Taxi的类。然后使用new运算符来实例化

该类。在为新对象分配内存之后,new运算符立即调用Taxi构造函数。

publicclassTaxi

{

publicboolisInitialized;

publicTaxi()

{

isInitialized=true;

}

}

classTestTaxi

{

staticvoidMain()

{

Taxit=newTaxi();

ine(ialized);

}

}

不带参数的构造函数称为“默认构造函数”。无论何时,只要使用new运算符实例化对象,并且不为

new提供任何参数,就会调用默认构造函数。

除非类是static的,否则C#编译器将为无构造函数的类提供一个公共的默认构造函数,以便该类

可以实例化。

通过将构造函数设置为私有构造函数,可以阻止类被实例化

结构类型的构造函数与类的构造函数类似,但是structs不能包含显式默认构造函数,因为编译器将

自动提供一个构造函数。此构造函数会将struct中的每个字段初始化为默认值。然而,只有当struct用

new实例化时,才会调用此默认构造函数。

类和structs都可以定义具有参数的构造函数。带参数的构造函数必须通过new语句或base语句

来调用。类和structs还可以定义多个构造函数,并且二者均不需要定义默认构造函数。例如:

publicclassEmployee

{

publicintsalary;

publicEmployee(intannualSalary)

{

salary=annualSalary;

}

publicEmployee(intweeklySalary,intnumberOfWeeks)

{

salary=weeklySalary*numberOfWeeks;

}

}

对于面的构造函数可以使用下列语句中的任一个语句来创建此类:

Employeee1=newEmployee(30000);

Employeee2=newEmployee(500,52);

构造函数可以使用base关键字来调用基类的构造函数。例如:

publicclassManager:Employee

{

publicManager(intannualSalary):base(annualSalary)

{

//进一步的说明在这里添加

}

}

在此示例中,基类的构造函数在执行构造函数块之前被调用。base关键字可带参数使用,也可不带参数

使用。构造函数的任何参数都可用作base的参数,或用作表达式的一部分。

在派生类中,如果不使用base关键字来显式调用基类构造函数,则将隐式调用默认构造函数(如果有的

话)。这意味着下面的构造函数声明在效果上是相同的:

publicManager(intinitialdata)

{

//进一步的说明在这里添加

}

publicManager(intinitialdata):base()


本文标签: 对象 调用 默认 使用