下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、构造函数有什么作用?构造函数是在创立给定类型的对象时执行的类方法.构造函数具有与类相同的名称,它通常初始化新对象的数据成员.在下面的例如中,定义了一个具有一个简单的构造函数,名为Taxi的类.然后使用new运算符来实例化该类.在为新对象分配内存之后,new运算符立即调用Taxi构造函数.publicclassTaxi(publicboolisInitialized;publicTaxi()构造函数与类同名,可重载(/在类被实例化的时候自动调用一般用于初始化类的一些属性isInitialized=true;classTestTaxi(staticvoidMain()(Taxit=newTaxi(
2、);这时会自动运行Taxi类的构造函数Taxi()System.Console.WriteLine(t.islnitialized);)不带参数的构造函数称为“默认构造函数.无论何时,只要使用new运算符实例化对象,并且不为new提供任何参数,就会调用默认构造函数.【考点】各种形态构造函数的理解,派生类的构造函数,构造函数的重载.【出现频率】【解答】构造函数用于创立类的实例,并对实例进行初始化操作,通过不同的参数传递,可进行不同的实例初始化操作.本例通过多种不同形式的构造函数创立实例,并输出初始化的结果.在目录下新建一个程序文件,并命名为Constructor.cs,编写代码如代码4.8所示.
3、代码4.8构造函数例如:Constructor.csusingSystem;classConstructor(staticvoidMain()(Console.Write("请输入篮球比赛的选手人数:");intinputA=Int32.Parse(Console.ReadLine();将用户输入值转换为int类型(这里没有作异常处理)Console.Write("请输入篮球比赛的MVP:");stringinputB=Console.ReadLine();Basketballbb=newBasketball.;/用Bas
4、ketball类的默认构造函数创立实例bbbb.getmsg();/实例bb调用getmsg方法Basketballbbb=newBasketball(inputA,inputB);/用Basketball类带2个参数的构造函数创立实例bbbbbb.getmsg();/实例bbb调用getmsg方法Footballfb=newFootball();/用Football类的默认构造函数创立实例fbfb.getmsg();实例fb调用getmsg方法Console.WriteLine("n本次游泳比赛的冠军是0队",Swim.champ);/直接访问Swim类的
5、静态字段/Shootsh=newShoot();此处代码将会被编译器报错,由于其默认构造函数为私有的classBasketballprivateint_playernum;privatestring_mvp;internalBasketball()internalBasketball(intn,stringm)_playernum=n;_mvp=m;internalvoidgetmsg()(Console.WriteLine("n这场篮球比赛的选手有0个,最有价值球员是1!",_playernum,_mvp);classFootballprivatestri
6、ng_star="Henry"internalvoidgetmsg()Console.WriteLine("n这场足球比赛的明星是0!",_star);classSwiminternalstaticstringchamp;staticSwim()静态构造函数,用于初始化静态成员(champ="中国")classShoot(internalstaticstringchamp=null;privateShoot()私有构造函数,无法在类外部创立实例()在命令行下编译Constructor.c
7、s后,执行Constructor程序,其效果如图4.10所示.图4.10构造函数例如本例的Main方法中,首先将用户第1次输入的值通过逗号分隔为2个字符串,然后分别赋值给PC类的静态字段,即cpu和memory.然后将用户的第2次输入也分隔为2个字符串,并转换为整数类型赋值给p和n.通过传递参数p和n给PC的构造函数创立实例,【分析】前面的所有例如中都使用了构造函数,由于构造函数用于创立类的实例对象.在类中声明构造函数可对新实例对象进行初始化的操作,其编写方法如以下代码所示.class类名称访问修饰符类名称0初始化操作;可见,构造函数和类中的方法类似,也是一种函数,不过构造函数的名称必须和类名
8、称相同.并且构造函数没有返回值,所以其函数签名和一般的函数有区别.没有参数的构造函数被称为默认构造函数,如果非静态类的类体中没有声明构造函数,类将自动提供一个默认构造函数,并将类成员初始化为默认值.说明:结构类型Struct是值类型,不需要显式声明默认构造函数,编译器将自动生成默认构造函数.当用new运算符实例化时默认构造函数才被调用,将成员初始化为默认值.通过不同的参数传递,在类体中可声明多个构造函数,即实现构造函数的重载.其编写方法如以下代码所示.class类名称访问修饰符类名称0初始化操作1;访问修饰符类名称参数类型1参数1初始化操作2;访问修饰符类名称参数类型2参数1.初始化操作3;在程序中创立该类的实例对象时,通过传递参数的不同,调用不同的构造函数进行不同的初始化操作.程序中创立实例对象的方法如以下代码所示.类型名称对象名称=new构造函数;/默认构造函数类型名称对象名称=new构造函数参数列表;一般情况下,构造函数是实例构造函数,即可通过该构造函数在类外部创立类的实例.反之,如果需要阻止创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教师资格之中学教育知识与能力考试题库300道含答案【培优b卷】
- 2026年高校教师资格证之高等教育法规考试题库含答案【突破训练】
- 2026年基金从业资格证考试题库500道含答案(达标题)
- 2026年大学生计算机考试题库200道及一套答案
- 妇产科护理与分娩支持
- 《长方体和正方体的认识》数学课件教案
- 天工大针织学课件第2篇 针织物组织与产品设计第9章 贾卡提花经编织物及产品设计
- 企业安全员工作总结7篇
- 江西护理面试题库及答案
- 省考疫情面试题目及答案
- 宽容和感恩的培训
- 广东省汕头市金平区2024-2025学年七年级上学期期末考试数学试题
- 过敏性休克的抢救流程
- 常用机床电气检修课件 课题十一 T612 型卧式镗床电气检修
- 全国人大机关直属事业单位2026年度公开招聘工作人员考试模拟卷带答案解析
- 云肩非遗模板
- 头颈部肿瘤介绍
- 安全监理工作总程序
- 2026年中国宏观经济展望分析报告:底部夯实亮点引领未来方向
- 2025年新型健康饮品研发可行性研究报告及总结分析
- 竣工决算业务合同范本
评论
0/150
提交评论