已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.第1,3章面向对象编程基础,1 .了解基本概念2。了解类3。使用构造函数4。学习方法5。属性学习,掌握,2,名字,性别,年龄等:属性学习课程,参加社会活动:方法,3.1面向对象编程概念,1。具有对象属性和操作(方法)的实体。属性:对象状态方法:特定功能对象的唯一标识符名称2。类的抽象,抽象数据类型3。类是对象的模板,对象是类的具体化或类的示例。学生学生对象,3,对象和类,属性,模型,价格,行驶里程,运动,开始,停止,行驶,属性,车轮数,文件数,运动,加速,变速,刹车,属性,名称,颜色,4,面向对象的编程处理对象时要遵循的三个原则:1。软件包将数据和代码组合在一个框架中,形成一个对象。类是支持封装对象的工具,对象是包的基本单位。2.继承可让您建立阶层式类别,这是在父类别和子类别之间共用资料和方法的机制。继承通常将父类称为基类,将子类称为派生类。单一继承:基类可以有任意数量的派生类,即父级多个子级多个继承。如果类有两个或多个直接基类(称为多个继承的子多个父类),则C#通过接口3 .与多态相同的操作对不同的对象起作用,因此您可以具有不同的解释并生成不同的运行结果。分为静态多态和动态多态;根据参数的差异直接调用对象方法;基于基类间接调用对象方法;以及、调用5,3.2类,属性集信息是C#语言的重要特征,C#语言提供程序中定义的各种实体的一些附加说明信息。属于高级编程内容,通常不涉及。类名:基于唯一标识符类:直接基类或接口。默认基类是object类,多个接口用逗号分隔,其中包括类修饰符访问权限、类类型等。不允许多次使用同一修改器。表3.1,6,表3.1类修饰符,7,3.2.2类的成员,类体(类体)用大括号对括起来以定义该类的成员。由两部分组成。1.类体中作为类成员声明引入的类成员包括常量声明、字段声明、方法声明、属性声明、事件声明、索引器声明、运算符声明、构造函数声明、析构函数声明、静态构造函数、类型声明等2。直接从基类继承的成员;第一,成员类型:(1)静态成员在字段、方法、属性、事件、运算符和构造函数声明中包含publicstatic修饰符(2)实例成员。字段、方法、属性、事件、运算符和构造函数声明不包含publicstatic修饰符2。默认成员访问修饰符private,类成员注意事项:9,class program class aclass public static intx=1;publicinty=2; statistoid min(stringargs) aclassb=new class();Console.writeline (y=0,x=1 ,ab.y,aclass . x);,10,1。常量声明、常量修饰符new、public、protected、private、internalpublic:访问不受限制protected:访问仅限于包含类或派生自包含类的类型internal:访问仅限于当前程序集。Private:访问仅限于包含类。类型sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、booble常数表达式中的值类型必须与目标类型匹配,或通过隐式转换规则转换为目标类型。11示例:class a _ const public constintx=10;ConstdoublePI=3.14159/预设存取修改子privateconstdoubleY=0.618 3.14注释1。常量表达式的值是编译时可以计算的值。注意2 .常量声明不允许static表达式,只能通过类访问。class test public stic void main() a _ cons TM=newa _ const();Console.writeline (x=0,pi=1,y=2,a _ const.x,a _ const.pi,a _,12,2。字段声明,语法格式:特性集信息 字段修饰符类型变量声明列表;变量声明列表标识符或多个标识符(以逗号“,”分隔),变量标识符也可以使用赋值编号“=”设置初始值。字段修饰符3354new、public、protected、private、internal、static、readonly和volatilestatic:静态变量。使用类直接访问静态变量,使用类的实例(对象)访问非静态变量readonly。不能为只读变量、声明时或构造函数分配值,也不能更改分配。与Const常量不同,const常量在编译时执行分配计算。Volatile:字段表示可由多个并发执行修改的进程。13,示例3.1通过构造函数为只读字段赋值,以使用system。public class area publicreadonlydoubleradius;/Radius是只读字段privatedoublex,y;PublicdoubleSizePublicstaticdoubleSum=0.0PublicArea() Radius=1.0;/通过构造函数分配给radius classtest public stic void main() areas 1=new area();/s1。radius=2;Console.writeline (radius=0,size=1,sum=2 ,s1.radius,s1.size,area.sum)/静态字段通过类Area .存取Sum,执行处理栏位透过物件s1 .SizeConsole .访问Read() ,出错!只读字段不能修改、14,3.2.3构造函数和析构函数,1)实例构造函数的声明语法:属性集信息 构造函数修饰符标识符(参数列表):base(参数列表: this构造函数重载:调用相同类参数列表的构造函数,调用相同参数列表的构造函数,或调用相同参数列表的构造函数,15、构造函数修饰符public、protected、internal、private和extern通常是构造函数总是public类型。Private类型表示类不能由外部类实例化。标识符(参数列表opt)构造函数名称必须与此类同名。返回类型和返回值构造函数可以有0到n个参数构造函数。3.使用new运算符创建类的对象时,类名后的括号对提供初始化列表,并根据此初始化列表中的参数数、参数类型和参数顺序调用不同的构造函数。,实例创建者注意事项:16,示例3.2Time类的构造函数和重载,usingSystemPublic class time private inthour,minute,secondpublic time() hour=minute=second=0; publicTime(inth) hour=h;minute=second=0;publicTime(inth,intm) hour=h;minute=m;second=0; public time (inth,intm,ints) hour=h;minute=m;second=s;,public string gettime() return hour . tostring() : minute . tostring() :,console.writeline (t1=0 ,t1 . get time();17,示例3.3初始化构造函数,usingSystemClassPointpublicdoublex,y;public point() x=0;y=0; public point (doublex,doubley) this . x=x;/this用于实例构造函数时this.y=y/其值是对已配置对象的引用。 classtest public stic void main() pointa=new point();Pointb=newPoint(3,4);/使用构造函数将对象console.writeline (a.x=0,a.y=1 ,a.x,a . y);Console.writeline (b.x=0,b.y=1 ,b.x,b . y);控制台。read();,a.x=0,a.y=0,b.x=3,b.y=4,18,构造函数注释:如果类不能使用构造函数,则CLR自动提供默认构造函数。如果类可以使用自定义构造函数,则不提供默认构造函数。构造函数调用实例构造函数时不能继承,19,不显示派生类构造函数的调用。何时调用:创建派生类的对象时不继承new构造函数在派生类构造函数运行之前显式或隐式调用基类构造函数基类的无参数构造函数在调用参数构造函数this关键字引用类的当前实例base关键字从派生类访问基类的成员调用基类的基类中被其他方法复盖的方法调用在创建派生类实例时应调用的基类构造函数。20,(示例3.4派生类构造函数及其调用,usingSystemClassPointprivateintx,y;public point() x=0;y=0;console . writeline( point()constructor : 0 ,this); public point (intx,inty) this . x=x;This.y=yConsole.writeline (point (x,y) constructor : 0 ,this); class circle : point privsatedoubleradius;PublicCircle()/基本规则是基类的无参数构造函数point() console . writeline( circle()constructor 3360 0 ,this public circle(double radius): base() this . radius=radius;console . writeline( circle(radius)constructor : 0 ,this); public circle (intx,inty,double radius) : base (x,y) this . radius=radius;Console.writeline (circle (x,y,radius) constructor : 0 ,this);,classtest statistoid min() pointa=new point();circleb=new circle(3.5);Circlec=newCircle(1,1,4.8);控制台。read();、1,3,2,5,4、21,2)静态构造函数的声明语法:属性集信息 静态构造函数修饰符标识符()静态构造函数主体静态构造函数修饰符3354 extn static或static exetern。如果具有Extern修饰,则为不提供实际实现的外部静态构造函数。静态构造函数实体只是分号标识符,必须与类同名,并且不能有参数。静态构造函数体只能初始化静态数据成员,并且。22,静态构造函数不能继承。不能直接调用调用计时。如果在创建类的实例中运行一个或多个引用类的静态成员,并且类中未声明静态构造函数并且包含具有初始设置的静态字段,则编译器将自动生成基本静态构造函数。静态构造函数注意事项:23,2。析构函数,语法格式:属性集信息 extn 标识符()析构函数主体标识符必须与类名相同,前面的“”析构函数3354不能写入返回类型,也不能使用参数。一个类最多有一个析构函数,24,析构函数注意事项,析构函数不能被程序明确调用。相反,派生的类对象的析构函数调用系统自动调用的链。1)运行派生类的析构函数2)运行基类的析构函数,直到调用object类的析构函数为止。与建构函式执行顺序相反.第25,3章面向对象编程基础,1 .了解基本概念2。了解类3。使用构造函数4。学习方法5。属性使用、识别、26、审阅、具有对象属性和操作(方法)的实体类对象的抽象、抽象数据类型类是对象的模板对象是类的具体化或实例。27,类的成员,1。类体中作为类成员声明引入的类成员包括常量声明、字段声明、构造函数声明、静态构造函数、方法声明、属性声明等2。直接从基类继承的成员。28,访问修饰符,public访问无限
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮新员工培训
- 早产儿健康科普指南
- 肩周炎的健康宣教
- 礼仪技巧与方法
- 白内障术前评估
- 前庭训练认知课
- 简易呼吸气囊使用方法
- 语文教学方法体系与实践要点
- 康复功能评估课
- 动画科普制作方法
- 第7章广泛应用的酸碱盐(上)-2021学年九年级化学下册必背知识手册(沪教版)(默写卡)
- 2025年铅酸蓄电池行业研究报告及未来发展趋势预测
- 工伤预防培训试题(附答案)
- 2025年消防中控员理论考试题库
- 过渡金属催化机理-洞察及研究
- 南航国际创新港一期配套市政道路建设工程环境影响评价报告表
- DB37-T4894-2025植物耐盐性田间鉴定设施建设技术规程
- 老年保健慢性病管理课件
- the-road-not-taken教学培训课件
- Energy Perspectives 2025 (2025年年能源展望)-译文
- 生产异常处理培训
评论
0/150
提交评论