下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高考化学一轮复习-专题讲座(三)“粒子”浓度关系判断讲义-鲁科版
- 高考政治一轮复习-第一单元-公民的政治生活单元优化总结讲义-新人教版必修
- 公路设计变更流程管理标准
- 信息技术教学方案及教学质量提升
- 课程标准指导下的小学数学教案编写
- 渭南交通安全培训中心课件
- 温泉食品安全培训课件
- 大学教育学期末考试复习资料
- IT公司远程办公管理规范与实施方案
- 工程设计与施工合同条款范本
- 2025辽宁省文体旅产业发展集团有限责任公司招聘8人笔试重点题库及答案解析
- 社交媒体运营主管工作绩效评定表
- 辽宁省抚顺市省重点高中协作校2026届高一数学第一学期期末质量检测试题含解析
- 山东省济南市历下区2024-2025学年四年级上学期期末英语试题
- 投资者关系部经理笔试题及解析
- 2026届八省联考(T8联考)2026届高三年级12月检测训练物理试卷(含答案详解)
- 贵州兴义电力发展有限公司2026年校园招聘备考题库及答案详解1套
- 人间处处有真情课件
- 防水补漏合同协议
- ISO9001质量管理体系课件
- 2026泰安银行股份有限公司校园招聘70人备考题库附答案详解(综合题)
评论
0/150
提交评论