- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CWinform程序设计第三节汇编
C# 面向对象程序设计 主讲部门:CSDN教学部 主讲人: 李业宏扬 本课目标 了解面向对象的基本概念与实现方法 了解静态方法与动态方法区别与用法 了解继承,重写,重载,多态的概念与用法 了解接口与抽象类 面向对象概念 范例问题:某班级里所有成员都有学号,姓名,数学成绩,语文成绩,英语成绩,求该班数学语文英语平均成绩最高的同学的学号及姓名。 分析:计算机需要知道每个成员的学号,姓名,各科成绩才能进行运算。因此我们需要存储班级所有成员的成绩,这些成绩可以放在一个数组里,但是学号和姓名并不是数字类型。因此,我们可以把学号,姓名,数学成绩,语文成绩,英语成绩放在一个东西里糅合在一起。在C语言中我们有结构体可以实现这个功能。因此考虑引用结构体。 使用C语言解决方案:新建一个结构体数组,插入数据,遍历,在遍历里取数学语文英语成绩运算后比较出最大的后找到下标输出这个人的信息。 面向对象概念 范例问题:某班级里所有成员都有学号,姓名,数学成绩,语文成绩,英语成绩,求该班数学语文英语平均成绩最高的同学的学号及姓名。 然而我们在c语言中必须要在过程里处理平均值运算,很麻烦,于是我希望把平均值运算封装成函数。但是每次调用还要传参,依然很麻烦。 于是我们考虑能不能把方法放在结构体里,这个方法能直接调用这个结构体的变量运算? 这个结构是存在的,就是我们今天要学的类 面向对象概念 类是对象的模板。 对象是由类创建的,由模板创建的自己的属性和方法组成的集合体。每个对象的属性和方法都可以不同,但结构相同,此处的方法称为动态方法。 根据A类创建的对象B,B为A的实例,A是B的数据类型。 类属性及类方法与这个类创建的对象无关,只能通过类名调用。此类属性方法称为静态属性与静态方法。 了解静态方法与动态方法区别与用法 静态属性/方法是通过类名调用的。 People.get(i); 这里的get方法在任意可写代码的地点均可调用 动态属性/方法是通过类创建的变量调用的。 People p = new People(); p.getName(); 这里的getName();方法只能在有对象的时候才能调用 动态方法能操作对象,静态方法只能通过对象的动态属性或方法操作。 继承,重写,重载,多态 A类从B类继承是指A类的B类属性方法全部都有,但是A类属性和方法比B类更详细(A类细化了B类)。 比如B是动物,A是人类,A和B都会移动,但是A可以说话,但不是所有的B都会说话。 被继承的称为父类,继承父类的类称为子类。 父类类型的变量可以使用子类的对象。 继承,重写,重载,多态 重写是指A类继承自B类,但A类的某个方法实现与父类同名的方法不一样,子类重写修改的现象。 比如B是动物,A是人类,A和B都会吃东西,但是A吃东西和其它B类生物吃东西方式不同,于是A吃东西的动作需要重写。 继承,重写,重载,多态 同一个类或父子类里,同名但不同参数种类/个数的方法叫这个名称的方法的重载。 假设把一个对象转为int型数字(Int32.parse()),可以转字符串,可以转double型数字,可以转。。。一系列变量,这些方法都叫parse,我们称这些方法都是parse的重载。 继承,重写,重载,多态 多态是指同一个类的不同子类创建的对象实现的方法不同的现象。 动物,人类,羊。羊和人类都属于动物,动物都能吃饭,但羊和人类吃饭的方式明显不同。这就是多态现象。 抽象类与接口 抽象类与接口是指一个专门的父类,不具体实现一个或多个属性或方法,强迫子类去实现这些属性或方法以形成一种规范。 动物的吃方法不具体实现,继承动物类的类必须实现这个方法。 所有方法都是抽象方法的类可以是接口。 具体实现 类的实现: class 类名{ 各种方法 } 动静态方法创建,创建对象 公私有类型 动静态类型 返回值类型 方法名(参数类型1 参数名1,…){ } 继承、重写 class A:B{ }//A继承B 公私有类型 override 返回值类型 方法名(参数类型1 参数名1,…){ }//重写 接口、抽象类 abstract class 类名{ }//抽象类,接口使用Interface 作业 使用面向对象知识完成范例问题:某班级里所有成员都有学号,姓名,数学成绩,语文成绩,英语成绩,求该班数学语文英语平均成绩最高的同学的学号及姓名。 谢谢 主讲部门:CSDN教学部 主讲人: 李业宏扬 * *
文档评论(0)