第5章 面向对象高级应用优秀PPT.ppt

上传人:石*** 文档编号:65048163 上传时间:2022-12-02 格式:PPT 页数:20 大小:1.06MB
返回 下载 相关 举报
第5章 面向对象高级应用优秀PPT.ppt_第1页
第1页 / 共20页
第5章 面向对象高级应用优秀PPT.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《第5章 面向对象高级应用优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第5章 面向对象高级应用优秀PPT.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章 面向对象高级应用现在学习的是第1页,共20页5.1 继承下图反映了图类的派生关系。最高层的实体往往具有最一般最普通的特征,下图反映了图类的派生关系。最高层的实体往往具有最一般最普通的特征,越底层的越具体,并且包含了上一层的特征,它们之间的关系就可以表现为越底层的越具体,并且包含了上一层的特征,它们之间的关系就可以表现为面向对象中的继承关系。面向对象中的继承关系。现在学习的是第2页,共20页继承的语法:继承的语法:访问修饰符访问修饰符 class 类名类名:基类名称:基类名称 例例5.1 最简单的继承示例。最简单的继承示例。P69 例例5.2 对例对例5.1进行修改,在派生类进行修改,在

2、派生类B中,分别添加一个方法及属性。中,分别添加一个方法及属性。P70例例5.3 继承中的继承中的base关键字。关键字。P71例例5.4 继承中的构造函数。继承中的构造函数。P72 现在学习的是第3页,共20页从例从例5.4中可见,在中可见,在C#中,构造函数的执行顺序是:中,构造函数的执行顺序是:先调用基类的构造函数,再依次调用各派生类的先调用基类的构造函数,再依次调用各派生类的构造函数。构造函数。C#中的继承符合下列规则:中的继承符合下列规则:1、继承是可传递的。如果、继承是可传递的。如果C从从B中派生,中派生,B又从又从A中派生,中派生,那么那么C不仅继承了不仅继承了B中声明的成员,同

3、样也继承了中声明的成员,同样也继承了A中的成员。中的成员。2、派生类应当是对基类的扩展。派生类可以添加新的、派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员的定义。成员,但不能除去已经继承的成员的定义。3、类可以定义虚方法、虚属性等。它的派生类能够重载这些、类可以定义虚方法、虚属性等。它的派生类能够重载这些成员,从而实现类可以展示出多态性。成员,从而实现类可以展示出多态性。现在学习的是第4页,共20页5.2 多态性多态性继承使得在原有的类基础之上,对原有的程序进行扩展,继承使得在原有的类基础之上,对原有的程序进行扩展,从而提高程序开发的速度,实现代码的复用。同一种方法

4、从而提高程序开发的速度,实现代码的复用。同一种方法作用于不同对象可以产生不同的结果,这就是多态性。作用于不同对象可以产生不同的结果,这就是多态性。C#中的多态包括两类:编译时多态性和运行时的多态性。中的多态包括两类:编译时多态性和运行时的多态性。编译时的多态性是通过我们前面所介绍的方法重载来实现的。运编译时的多态性是通过我们前面所介绍的方法重载来实现的。运行时的多态是指直到系统运行时,才根据实际情况决定要实现何行时的多态是指直到系统运行时,才根据实际情况决定要实现何种操作。种操作。C#中运行时的多态性是通过虚方法来实现的。中运行时的多态性是通过虚方法来实现的。现在学习的是第5页,共20页虚方法

5、虚方法虚方法的定义要用到虚方法的定义要用到virtual关键字关键字,如下所示:,如下所示:public class Animal public virtual void Eat()Console.WriteLine(Eat something);这样,这样,Animal 类的任何派生类都可以实现新的类的任何派生类都可以实现新的 Eat()方法。方法。现在学习的是第6页,共20页多态性 如果在派生类中要重写基类方法,那么需要使用如果在派生类中要重写基类方法,那么需要使用 override 关键字,如下所示:关键字,如下所示:public class Cat:Animal public over

6、ride void Eat()Console.WriteLine(Eat small animals);现在学习的是第7页,共20页抽象类和抽象方法当创建一个类时,有时候需要让该类包含一些特殊方法,该类对这些方法不提供实现,该类的派生类必须实现这些方法,这些方法为抽象方法(没有被实现的空方法)。能够包含抽象成员的类称为抽象类,包含抽象成员的类一定是抽象类,抽象类也可包含非抽象成员。抽象类不能直接实例化,也不能被密封,只能作为其它类的基类。抽象方法声明:访问修饰符 abstract 返回值类型 方法名(参数列表);现在学习的是第8页,共20页5.3 接口接口接口是引用类型,一个接口的定义相当于一

7、个约定。实现接口是引用类型,一个接口的定义相当于一个约定。实现某接口的类或结构必须遵循该接口定义的约定。在某种程某接口的类或结构必须遵循该接口定义的约定。在某种程度上,接口像一个抽象类。可以定义接口的方法、属性、度上,接口像一个抽象类。可以定义接口的方法、属性、索引器和事件等,但是接口不提供成员的实现,仅指定实索引器和事件等,但是接口不提供成员的实现,仅指定实现该接口的类或结构所必须提供的成员,继承接口的类必现该接口的类或结构所必须提供的成员,继承接口的类必须提供接口成员的实现。须提供接口成员的实现。在前面所介绍的继承中,类无法实现多继承,即一个类只能继在前面所介绍的继承中,类无法实现多继承,

8、即一个类只能继承于一个基类而不能同时继承于多个基类。在承于一个基类而不能同时继承于多个基类。在C#中允许一个接中允许一个接口继承于多个接口,当继承于多个接口时,各个接口之间用口继承于多个接口,当继承于多个接口时,各个接口之间用“,”号隔开。号隔开。现在学习的是第9页,共20页接口接口接口是引用类型,接口成员包括:接口是引用类型,接口成员包括:方法方法属性属性 索引器索引器 事件事件现在学习的是第10页,共20页声明接口声明接口 声明接口要使用声明接口要使用 interface 关键字关键字例如:例如:interface ICarnivore bool IsHungry get;set;void

9、 Eat(Animal Victim);现在学习的是第11页,共20页实现实现接口接口 要实现一个接口,必须要有类继承该接口。要实现一个接口,必须要有类继承该接口。接口的实现类可以是派生类,并且这些派生类可以包括接口的实现类可以是派生类,并且这些派生类可以包括一些自己特有的类成员。一些自己特有的类成员。现在学习的是第12页,共20页接口与抽象接口与抽象类类的比的比较较当准备为组件提供多态性时,表当准备为组件提供多态性时,表 中的建议将有助于在抽中的建议将有助于在抽象类和接口之间做出正确的选择。象类和接口之间做出正确的选择。目标选择设计小而简练的功能块接口设计大型功能单元抽象类现在学习的是第13

10、页,共20页5.4 委托和事件委托委托 用用delegate关键字声明,是一种引用类型,相当于函数指针,关键字声明,是一种引用类型,相当于函数指针,通过委托可以对方法进行引用执行。通过委托可以对方法进行引用执行。委托的形式和方法一样,具有参数和返回值。同时,要委委托的形式和方法一样,具有参数和返回值。同时,要委托执行的方法也必须和所声明的委托格式一致,即具有相同的托执行的方法也必须和所声明的委托格式一致,即具有相同的返回值和参数列表。返回值和参数列表。现在学习的是第14页,共20页委托例如:例如:class Program delegate void Sample(string message

11、);static void Main(string args)Sample s1=method1;Sample s2=method2;Sample S3=s1+s2;S3(zhangsan);下面一条语句注释下面一条语句注释 s1(zhangsan);Console.Read();static void method1(string message)Console.WriteLine(nihao+message);static void method2(string message)Console.Write(hello+message);现在学习的是第15页,共20页多播委托只调用一个委托就

12、可以完成对多个方法的调用,并且传递给委托的参数只调用一个委托就可以完成对多个方法的调用,并且传递给委托的参数会传递到委托所包含的每一个方法。会传递到委托所包含的每一个方法。委托对象支持使用操作符委托对象支持使用操作符“+”来连接。委托的来连接。委托的“+”并非计算两个并非计算两个方法的和,而是把方法加入执行队列。方法的和,而是把方法加入执行队列。现在学习的是第16页,共20页事件事件对象和对象之间是通过传递消息来进行交互的,事件是对象发送的消息。消息可对象和对象之间是通过传递消息来进行交互的,事件是对象发送的消息。消息可能是鼠标或键盘等引起的,也可能是用户定义的。能是鼠标或键盘等引起的,也可能

13、是用户定义的。在在C#中,事件是一种委托,实质是通过委托来执行事件处理代码,事件是外部对象中,事件是一种委托,实质是通过委托来执行事件处理代码,事件是外部对象引起的,如鼠标的单击操作就触发引起的,如鼠标的单击操作就触发Click事件。事件。注册事件采用注册事件采用“+=”操作符,撤销事件采用操作符,撤销事件采用“-=”操作符。操作符。例子例子现在学习的是第17页,共20页小结构造函数属性方法(参数传递,重载)委托接口现在学习的是第18页,共20页实验四 面向对象高级应用(综合)实验目的:实验目的:(1)加深理解面向对象编程的概念。)加深理解面向对象编程的概念。(2)掌握类的多态及继承)掌握类的

14、多态及继承(3)能够综合面向对象的知识进行相关内容的设计)能够综合面向对象的知识进行相关内容的设计 实验内容:实验内容:1、把学校的人员结构抽象成、把学校的人员结构抽象成University类,要求此类中包含方法、事件、属性等。用类,要求此类中包含方法、事件、属性等。用代码实现抽象(只需要定义)其中,包括学生和教师成员,抽象出代码实现抽象(只需要定义)其中,包括学生和教师成员,抽象出Student类和类和Teacher类,类,Teacher类里包含了授课方法,类里包含了授课方法,Student类里包含学习方法,学生类里包含学习方法,学生m_students和教师和教师m_teachers是两种

15、独立的对象,可用是两种独立的对象,可用property语句声明属性。事件包括开学和放假。可语句声明属性。事件包括开学和放假。可参考以下事件名称:参考以下事件名称:开学事件开学事件TermBeginsEvent放假事件放假事件TermEndsEvent定义事件的语法为定义事件的语法为“public event事件名事件名 as 委托名委托名”,如,如“public event TermBeginsEvent as EventHandler”表示开学事件的定义)。表示开学事件的定义)。现在学习的是第19页,共20页实验四 面向对象高级应用(综合)实验目的:实验目的:(1)加深理解面向对象编程的概念

16、。)加深理解面向对象编程的概念。(2)掌握类的多态及继承)掌握类的多态及继承(3)能够综合面向对象的知识进行相关内容的设计)能够综合面向对象的知识进行相关内容的设计 实验内容:实验内容:2、对大学类进行改进,将相似的内容抽象成基类。本实验要求将、对大学类进行改进,将相似的内容抽象成基类。本实验要求将Person类作为类作为Student类和类和Teacher类的基类,类的基类,School类作为类作为University类的基类。类的基类。School类包类包含学生集合、教师集合、开学事件、放假事件、开学方法、放假方法,其中含学生集合、教师集合、开学事件、放假事件、开学方法、放假方法,其中有的方法要定义为虚方法。另外在教师和学生中添加新的属性:年龄、身高、有的方法要定义为虚方法。另外在教师和学生中添加新的属性:年龄、身高、体重。在大学里添加新的独有成员:辅导员集合。辅导员体重。在大学里添加新的独有成员:辅导员集合。辅导员Counsellor也有年也有年龄、身高、体重属性,包括课外辅导方法。龄、身高、体重属性,包括课外辅导方法。现在学习的是第20页,共20页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁