版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京大学软件和微电子学院面向对象技术高级课程第一部分:面向对象方法蒋严冰、大纲、1 .面向对象方法以前的历史2 .面向对象方法的发生和发展3 .面向对象方法的基本原理4 .面向对象方法的优势关键词3360胶囊信息隐藏了多元相关信息, 1 .面向对象方法的历史编程语言的发展,软件工程的作用,功能分解数据实体状态规则,不同的软件开发模型(模拟观察和现实的方式),对象语言的发展历史,函数集约多重利他空间模块(Module ) 共有私有无实例化抽象数据型实例化对象信息传递一般化多样性Init() Push() Pop (),发展,2 .对象指向方法的诞生和发展, OOP首先是60年代挪威计算中心开发的
2、面向Simula67对象语言的先驱和第一个里程碑80年代初首次面向实用对象语言的Smalltalk80从80年代中期到90年代,面向对象语言繁荣的时代很多比较实用的OOPL 现在,将语言、类库、视觉编程环境组合起来的方式一般被采用。 例如,Visual C、Visual Basic、Delhpi、Java等。 OOA int l=s.length (); 为什么信息会引起一定的延迟呢? 说明1:中的每条消息都必须发送给指定的收件人,消息的说明取决于收件人吗? 为了解释2:虚拟方法,需要检查虚拟表。 非虚拟方法有同样的问题吗?消息的编译原理,将一个c语言类翻译成c语言段,主要是将c语言类的所有非
3、静态属性构成为一个c语言的结构类型,将类的名称作为结构类型的名称类的静态属性,该类的所有对象共享: 应该翻译成c的全局变量,但是必须更改名称c语言类的对象声明不翻译,变成c语言的对应结构型的变量声明,将消息的编译原理、c语言类的非静态方法翻译成c语言函数,对应的方法和函数this出现在函数体上的函数调用也必须增加方法中对本对象的非静态属性的访问,改变为对this兼容域的访问。 方法不需要修改访问其他对象的非静态属性的类的静态方法,必须在定义和调用位置更改名称,消息的编译原理,类c的方法m被翻译为函数fm,消息的编译原理,class point 公共:语音转换(双偏移,双偏移) xc=x _偏移
4、; yc =y_offset; void scale (双因子) xc *=因子; yc *=factor; 点(双倍x0=0,双倍y0=0) xc=x 0; yc=y0; void set (双倍x 0,双倍y0) xc=x 0; yc=y0; 双x (语音)返回xc; 双倍(语音)返回YC; double dist (点、委托、消息、工作可以从一个对象传递到另一个对象。 建设工厂是公司主席、首席执行官、承包商、泛化、泛化是面向对象方法的重要概念,可以大幅度提高软件开发效率。 也称为继承、一般-特殊结构。 泛化关系是一种关系。 类对象可以细分为更多子类,原来的类(父类)和子类之间的关系是泛化
5、关系。 父类被称为子类的泛化,子类被称为父类的特化。 多态性,鸭口兽(platypus )鸭口兽仅分布于澳大利亚南部和塔斯马尼亚岛。 像鸟一样,像爬行动物,是非常奇怪的哺乳动物。 卵生哺乳动物。 有圆毛,分泌真正的乳汁、卵生。 多态性、多态性(Polymorphism )一词来源于希腊语的polumorphos,意味着具有多种形式和形态。 在面向对象的方法中,多态性主要意味着泛化关系的各类中名称相同的属性和操作具有不同的意义。为了实现另一个目标接口的复用,并节省大量编码工作,多态性shape类具有显示屏幕上形状的display ()操作。 shape类有两个子类: circle类和rectan
6、gle类,分别具有绘制圆和矩形的display ()操作。 如果向shape类对象发送消息display (),则无论该对象所属的子类如何,都将消息display (); 可以正确执行,但结果不同。 如果子类的操作f(x )与父类的方法f(x )具有相同的基调,则子类将复盖父类的f(x )。 基调(Signature )是指函数的函数名称和函数的参数表,包括参数、参数名称和参数类型。 如果复盖和复盖、复盖和子类的成员函数f(x )具有与父类的成员函数f(x )相同的基调,则子类可以复盖父类的f(x ) 重负载允许存在多个同名的函数,但是这些函数的参数表不同(参数数量不同、参数类型不同、还是两者
7、不同),具有不同的气氛。 霸盖引起多态性,通过动态链路实现。 重负载与多态性无关,通过静态链路实现。 基调(signature )和原型(prototype ),函数原型相似函数定义时的函数标题。 为了在定义前可以调用函数,c的规定可以在说明函数的原型后调用函数。 函数的定义可以放在程序的后面。 函数原型由函数的返回类型、函数名称和参数表组成,必须与函数定义的返回类型、函数名称和参数表匹配。 函数原型不需要包含参数的名称,而只可以包含参数的类型. 例如,int area (int,int )与int area (int,int b )同等函数基调(signature、签名、特征标签)函数签名中
8、包含函数名称、参数类型、函数所在的类和名称空间、以及包含其它信息的函数的信息具体的函数签名方法因编译器而异,函数的返回类型. int f (); 浮点(); 不能在同一类中出现的函数调用与函数基调有关,并且动态链路是在执行时知道消息的特定接收方和其响应的方法。 编译时连接特定的函数地址,运行时链接相关的函数地址。 动态链接是以动态链接方式执行程序的高效目标语言的所有函数的c,可以选择哪个函数是虚拟成员函数还是虚函数图标的指针阵列Instrument A,对象,Wind objects,vptr wind :30 play wind :30 what wind :30 adjust,percus
9、sion :30 play percussion :30 what percussion :30 adjust, string :30 play string :30 whatstring :30 adjust,brass :30 play brass :30 what brass :3360 adjust,percussion obje 和string objects,vptr,关联,现实世界一样,面向对象方法的各个对象不独立存在,它们之间存在具有特定意义的各种关系。 这个关系称为链关联是对象之间的链的集合关联和消息传递是两个不同概念之一: 相关目的是提供服务,信息传递必须只有两个类之间有关
10、联,在互相传递信息的另一观点:的两个对象之间有关联链,不一定具有消息传递关系,并且具有关联链面向对象方法的形象,概括地说,面向对象方法的基本思想是从客观存在于现实世界的东西(即对象)构建软件系统,在系统结构中尽可能地利用人的自然想法。6、从面向对象的优势、认识论的角度出发,面向对象的方法改变了人们认识世界的方式。 面向对象语言缩小了从客观世界到计算机的语言差距。 面向对象的方法保持着从问题域到计算机的差距,复用有助于提高软件的质量和生产效率。 7 .面向对象后?面向对象的方法、面向服务的方法、面向组件的方法、代理方法、模型驱动方法、思考问题、类是具有相同属性相同操作的对象的集合,类中的每个对象
11、都是此类之一。 a .实例b .用例c .实例d .异常面向对象的方法中,一个对象通过发送()向另一个对象请求服务。 a .语句b .消息c .命令d .调用密码的关系和消息之间的关系正确的是,() a .关联的目的是提供服务,消息必然在b .两个类的实例之间没有关联链,但消息c.2 消息d .当两个对象之间有链时,两者一定有消息传递关系,在复盖和复盖方面正确的是() 如果子类的成员函数f(x )与父类的成员函数f(x )具有相同的函数名称,则称为子类的子类独占父类的f(x )。 如果子类的成员函数f(x )与父类的成员函数f(x )具有相同的基调,则称为子类的子类过载父类的f(x )。 重负荷引起多态性,复盖与多态性无关。 霸盖通过动态链路实现,重负载通过静态链路实现。 ()是面向对象方法的重要机制。 该机制无论特定对象如何都实现操作的定义和实现操作的特定方法与特定对象相关联。 a泛化b模板c对象的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年喀什地区招聘中学教师真题
- 2026年陕西省中考生物试卷附答案
- 2025年山东水利技师学院招聘真题
- 岳阳平江县卫健系统招聘卫生专业技术考试真题2025
- 《Python编程基础》实训任务-13 系统资源智能监控仪-任务文档
- 水电管理制度
- 教师心理健康教育师资评价方案
- 教师造成安全事故检讨书
- 交通信号配时优化工作制度及流程规范
- 机关办公设备报废审批制度
- 2026年度成都市公开选调公务员笔试备考试题及答案详解
- 2026年临床检验科尿常规检测技术考核模拟试题及答案解析
- 2026-2030中国高油酸花生油市场供需趋势与营销推广渠道分析报告
- 汽车零部件清洁生产办法
- 电梯工程质量监理评估报告模板
- 《具身智能技术及产业实践的阶段性进展 》
- 2026年人教版初中七年级语文上册文言文古今异义卷含答案
- 2025年杭州市西湖区社区工作人员(网格员)考试题库真题及答案
- 审计人员轮岗制度
- 2026新高考政策全景解读与志愿填报策略
- 安全生产举报培训
评论
0/150
提交评论