欢迎来到天天文库
浏览记录
ID:34365338
大小:202.04 KB
页数:12页
时间:2019-03-05
《06 面向对象编程:构造函数new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章构造函数NET在线培训学习资料更多学习材料,请到www.rzchina.net下载面向对象的最大优点就是提供了构造函数。在创建类的实例时,存在调用类的初始化方法,这些方法就称之为构造函数。构造函数的最大好处是,能够确保对象在使用之前必须进行过必要的初始化操作。换句话说,在类的对象被声明时,类会首先调用构造函数对对象进行初始化,然后才会在该对象上进行别的操作。但是随之而来的问题是构造函数该如何命名,才能确保编译器明确的知道这个函数是构造函数而不是其它。为了解决这个问题,C#语言借用了C++语言的设计特点,要求构造函数的名称与类的名称保持相同。6.1.1构造函数的演示程序下面
2、使用程序验证构造函数的构造过程。(1)打开VisualStudio2005编辑器,单击“文件”菜单,选择“新建项目”命令,打开VisualStudio2005编辑器的创建向导,接着语言选择C#,选择“控制台应用程序”,如图6-1所示。图6-1构造函数执行的验证程序·115·第5章类和对象(2)修改生成的代码文件如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConstructor{classProgram{publicinti=100;stringstr="thisisclas
3、sconstructor";Program(){Console.WriteLine("这是构造函数");}staticvoidMain(string[]args){Console.WriteLine("Main:");Programctype=newProgram();Console.WriteLine(ctype.GetType());Console.WriteLine(ctype.i);Console.WriteLine(ctype.str);}}}(3)使用快捷键“Ctrl+F5”,执行程序,如图6-2所示。图6-2构造函数执行的验证程序的执行效果6.1.2构造函数的
4、演示程序的解释这个程序展示了构造函数在类的实例化中的作用。程序首先构造了一个类Program,然后声明了两个该类的成员变量,一个是整型的i,另外一个是字·116·符串型的str,两个变量均进行了赋值。classProgram{publicinti=100;stringstr="thisisclassconstructor";跟着,实现了一个与类的名字相同的函数Program,这个函数就是类Program的构造函数。Program(){Console.WriteLine("这是构造函数");}为了演示在类的实例化过程中,构造函数执行的顺序和位置,在类Program的Main()函
5、数中声明并实例化了一个对象ctype,并在实例化前后加入了一些提示性的语句,以表明构造函数介入的时间。staticvoidMain(string[]args){Console.WriteLine("Main:");Programctype=newProgram();Console.WriteLine(ctype.GetType());Console.WriteLine(ctype.i);Console.WriteLine(ctype.str);}最后的语句是为了验证调用类的成员变量的可行性而进行设定的,读者可以自行添加相应的代码。6.1.3声明变量与实例化变量在C#语言中,
6、还提供了一个与实例化变量不同的声明对象方式,这就是声明变量,如下所示:CClassctype;在C#语言中,这种表达方法定义了一个是CClass类型的变量ctype,但是与实例化不同的是,这种声明方式并没有实例化声明的变量,而仅仅是定义了变量而已。例如,如下演示程序表明了这一点。当使用这种方式声明了一个变量之后,但是没有同时进行实例化,编译器会报告错误。打开VisualStudio2005编辑器,单击“文件”菜单,选择“新建项目”命令,打开VisualStudio2005编辑器的创建向导,接着语言选择C#,选择“控制台应用程序”,如图6-3所示。·117·第5章类和对象图6-3
7、声明但是并不实例化的程序演示(2)修改生成的代码文件如下所示:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceshengmingerror{classProgram{Program(){Console.WriteLine("[Program.Program]"+"执行了构造函数");}staticvoidMain(string[]args){Console.WriteLine("[Main]应该声
此文档下载收益归作者所有