- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
C#程序设计第3章C#面向对象编程
2结构和枚举枚举结构★掌握枚举的声明和使用掌握结构的声明和使用理解结构和类的区别
3什么是结构什么是结构?把一系列相关的变量组织成单一实体的过程,在C#中称为生成结构的过程。这个单一实体的类型就叫做结构类型,每一个变量称为结构的成员。结构可视为轻量级的类,在需要一个小的数据结构时,最好使用结构
410.1.2结构的声明结构的声明publicstructStudent{publicstringstudentName,studentID;publicintAge;publicvoidSayHi(){….}}访问修饰符struct结构名{定义结构成员}构成和类相似定义成员变量不能赋初值成员方法常量;字段;方法属性事件索引器运算符重载带参数构造函数嵌套结构
5结构成员注意:结构不支持继承,所以结构成员的可访问性不能是protected或protectedinternal结构中的函数成员不能是abstract或virtual,override修饰符只适用于重写从System.ValueType继承的方法结构不能声明默认构造函数(编译器提供)或析构函数编译器提供默认构造函数以将结构成员初始化为它们的默认值不允许它的实例字段声明时初始化,但常量和静态字段可以声明时初始化
6结构调用使用new运算符创建结构变量结构名结构变量名=new结构名([参数表]);声明变量,然后初始化结构的字段结构类型结构变量;结构变量名.字段名=初始值;在没有完全初始化所有字段之前,结构变量都被看成是未赋值的,因此不能引用其未赋值的字段和函数成员
7…StudentmyStu=newStudent(张靓靓,“201101”,20);myStu.SayHi();…structStudent{…publicStudent(stringname,stringid,intage){this.studentName=name;this.studentID=id;…}}可以有构造函数只能声明有参数的构造函数,并且要实例化所有实例字段。构造函数传参
8…StudentmyStu;myStu.Age=20;myStu.studentName=张靓靓;myStu.studentID=“201102;myStu.SayHi();…定义结构可以不用new为结构成员赋值调用结构的方法
9结构和类的区别与联系结构与类很相似,均为包含数据成员和函数成员的数据结构结构可视为轻量级的类,在需要一个小的数据结构时,最好使用结构结构是存储在堆栈上的值类型可以通过装箱/拆箱操作,实现与object类型或由该结构实现的接口类型之间的转换.Net内建的基本数据类型均采用结构实现
10理解结构与类的区别结构是值类型-直接存储值student1studnet2Age=18student1student1.Age=18Age=18Agestudent2=student1student1.Agestudent1studnet2Age=18Age=20student2.Age=20
11理解结构与类的区别student1student1.Age=18Age=18类是引用类型-存储对值的引用student1studnet2student2=student1student1.Age两个变量都发生变化Age=20student1studnet2student2.Age=20
12理解结构与类的区别都可以实现接口都可以包含字段、方法相同点结构中给实例字段赋值是错误的类中可以给字段赋值创建对象可以不用new创建对象必须使用new可以添加构造函数,但它们必须带参数可以添加无参的构造函数不可以有默认构造函数及析构函数可以有默认构造及析构函数不能被继承可以被继承值类型引用类型不同点结构类
13使用类版Student和结构版Student实现下面操作staticvoidMain(string[]args){//使用值类型StructStudentstudent1=newStructStudent();StructStudentstudent2=newStructStudent();student1.Age=18;student2=
您可能关注的文档
- 6手工钨极氩弧焊+6.6钨极氩弧垂直固定管对接焊+3填充与盖面层焊-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+3送丝方式-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+2持枪姿势和焊枪、焊件与焊丝的相对位置-《焊接操作与管理》+课件.ppt
- 7焊接生产质量管理+7.5焊后成品的检验+1外观检查和测量-《焊接操作与管理》+课件.ppt
- 6手工钨极氩弧焊+6.4钨极氩弧转动管对接焊+1焊前准备-《焊接操作与管理》+课件.ppt
- 7焊接生产质量管理+7.1焊接工序质量的影响因素及对策+2焊接机器设备因素-《焊接操作与管理》+课件.ppt
- 5.1活动计划及日程变更的处理+课件-《导游实务》.pptx
- 1.2导游人员的组成与合作+课件-《导游实务》.pptx
- 5.2行程计划的调整与安排+课件-《导游实务》.pptx
- 3.2旅游行程服务的程序规范+课件-《导游实务》.pptx
- 第8章+多线程-1(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第5章+泛型-1(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 6手工钨极氩弧焊+6.2钨极氩弧焊平敷焊+1焊前准备-《焊接操作与管理》+课件.ppt
- 第7章+窗体的高级应用-1(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第3章+C#面向对象编程-4(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第9章+文件(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第4章+数组与集合-1(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 7焊接生产质量管理+7.5焊后成品的检验+4物理方法的检验-《焊接操作与管理》+课件.ppt
- 第3章+C#面向对象编程-8(课件)-《算法与程序设计-C#》同步教学(清华大学版).pptx
- 第8章+多线程-2(课件)-+《算法与程序设计-C#》同步教学(清华大学版).pptx
文档评论(0)