c#基础知识系列五(构造函数)

c#基础知识系列五(构造函数)

ID:8967281

大小:279.00 KB

页数:12页

时间:2018-04-13

c#基础知识系列五(构造函数)_第1页
c#基础知识系列五(构造函数)_第2页
c#基础知识系列五(构造函数)_第3页
c#基础知识系列五(构造函数)_第4页
c#基础知识系列五(构造函数)_第5页
资源描述:

《c#基础知识系列五(构造函数)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、前言  本节主要来学习下实例构造函数、私有构造函数和静态构造函数。  构造函数的作用:  1、当一个类在new实例化对象时,可调用构造函数进行初始化对象。  2、不带参数的构造函数称为“默认构造函数”。 无论何时,只要使用 new 运算符实例化对象,并且不为 new 提供任何参数,就会调用默认构造函数。除非类是static的,否则C#编译  器将为无构造函数的类提供一个公共的默认构造函数,以便该类可以实例化。  3、通过将构造函数设置为私有构造函数可以阻止类被实例化。  4、结构类型的构造函数与类的构造函数类似,但是structs不能包含显式默认构造函数,因为编译器将自动提供一个构造函

2、数。此构造函数会将struct中的每个字段初始化为默认值。  只有当struct用new实例化时,才会调用此默认构造函数。实例构造函数使用new表达式创建某个类的对象时,会使用实例构造函数创建和初始化所有实例成员变量。要初始化静态类或非静态类中的静态变量,必须定义静态构造函数。classCoOrds{publicintx,y;//constructorpublicCoOrds(){x=0;y=0;}}只要创建基于 CoOrds 类的对象,就会调用此实例构造函数。 诸如此类不带参数的构造函数称为“默认构造函数”。 然而,提供其他构造函数通常十分有用。 例如,可以向 CoOrds 类添加构

3、造函数,以便可以为数据成员指定初始值:publicCoOrds(intx,inty){this.x=x;this.y=y;}这样便可以用默认或特定的初始值创建 CoOrd 对象,如下所示:CoOrdsp1=newCoOrds();CoOrdsp2=newCoOrds(5,3);如果某个类没有构造函数,则会自动生成一个默认构造函数,并使用默认值来初始化对象字段。也可以用实例构造函数来调用基类的实例构造函数。 类构造函数可通过初始值设定项来调用基类的构造函数,如下所示: abstractclassShape{publicconstdoublepi=Math.PI;protecteddoub

4、lex,y;publicShape(doublex,doubley){this.x=x;this.y=y;}publicabstractdoubleArea();}classCircle:Shape{publicCircle(doubleradius):base(radius,0){}publicoverridedoubleArea(){www.qqtop2.comreturnpi*x*x;}}在此示例中,Circle 类将表示半径和高度的值传递给 Shape(Circle 从它派生而来)提供的构造函数。私有构造函数 私有构造函数是一种特殊的实例构造函数。 它通常用在只包含静态成员的类

5、中。 如果类具有一个或多个私有构造函数而没有公共构造函数,则其他类(除嵌套类外)无法创建该类的实例。 例如:classNLog{//PrivateConstructor:privateNLog(){}publicstaticdoublee=Math.E;//2.71828...}声明空构造函数可阻止自动生成默认构造函数。注意,如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。但是,通常显式地使用private修饰符来清楚地表明该类不能被实例化。当没有实例字段或实例方法(如Math类)时或者当调用方法以获得类的实例时,私有构造函数可用于阻止创建类的实例。如果类中的所有方

6、法都是静态的,可考虑使整个类成为静态的。下面是使用私有构造函数的类的示例:publicclassCounter{privateCounter(){}publicstaticintcurrentCount;publicstaticintIncrementCount(){return++currentCount;}}classTestCounter{staticvoidMain(){//CounteraCounter=newCounter();//ErrorCounter.currentCount=100;Counter.IncrementCount();Console.WriteLine

7、("Newcount:{0}",Counter.currentCount);Console.WriteLine("Pressanykeytoexit.");Console.ReadKey();}}注意,如果您取消注释该示例中的以下语句,它将生成一个错误,因为该构造函数受其保护级别的限制而不可访问://CounteraCounter=newCounter();//Error静态构造函数 静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。