- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 本章目标: 5.1 OOP基本思想 使用面向对象的思想来设计程序 例5-1:用面向过程的C语言实现两数相加 例5-2:用带过程化的面向对象C++语言实现 例5-3:用纯面向对象Java语言实现 三个例程的结果相同,都是:7 11 例5-1:用面向过程的C语言实现两数相加 #includestdio.h int sum(int x,int y) { return x+y; }; void main() { int a=3,b=4,c=5,d=6; printf(a+b=%d\n,sum(a,b)); printf(c+d=%d\n,sum(c,d)); } 例5-2:用带过程化的面向对象C++实现 #includeiostream.h class Calculate { public: int sum(int x,int y) { return x+y; } }; void main() { int a=3,b=4,c=5,d=6; Calculate obj; coutobj.sum(a,b)endl; coutobj.sum(c,d)endl; } 例5-3:用纯面向对象Java语言实现 class Calculate { int sum(int x,int y) { return x+y; } public static void main(String[] args) { Calculate obj=new Calculate(); int a=3,b=4,c=5,d=6; System.out.println(obj.sum(a,b)); System.out.println(obj.sum(c,d)); } } 5.1.2 类与对象 类和对象是OOP中最基本的两个概念,其实它们是比较好理解的,简而言之,类是对象的模板,对象是类的具体实现. 实例化是将类的属性设定为确定值的过程,是“一般”到“具体”的过程; 抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程,是“具体”到“一般”的过程。 关于“类”: 类是具有共同属性和行为的对象的抽象 类可以定义为数据和方法的集合 类也称为模板,因为它们提供了对象的基本框架 类是对象的类型,在语句中相当于数据类型使用 关于“对象” ,具有两方面的含义: 在现实世界中:是客观世界中的一个实体 在计算机世界中:是一个可标识的存储区域对象相当于变量 5.1.3 OOP基本特性 1. 封装(Encapsulation) 把类中的一些描述细节隐藏内部,用户只能通过接口来访问类中的内容,这种组织模块的方式称为“封装”。 封装是一种信息隐藏的技术,用户在访问对象的时候,只能看到对象表面上的东西,它们是留给用户访问对象的接口(简称API:Application Program Interface),而内部的信息,外界用户是不能直接访问的,这就保证了类中数据不会被意外篡改。(实例演示) 2. 继承(Inheritance) 为了代码复用,OOP语言允许一个类(子类)使用另一个类(父类)的属性和方法,这种子类使用父类属性和方法的特性称为“继承”。反之则称为“派生”。 例如:公司的雇员(Employee)派生为销售员(Saler)和部门经理(Manager)两类,销售经理(Sale_Manager)又继承了销售员和经理两个类的共同特征。如图1所示: 继承方式可以分为单继承和多继承(又称多重继承) 如果一个子类只继承自一个直接父类,就称为单继承。单继承又可以分为:单层继承和多层继承 如果一个子类同时继承自多个父类,就称为多继承。 Animal类就是Mammal类的直接基类,是Tiger类的间接基类(Java中都可称为“超类”); Tiger类是Mammal类的直接子类,是Animal类的间接子类。如图2所示: 如图1所示: 如图2所示: 3. 多态(Polymophism) “多态” (Polymophism)在编程上,简单讲就是“类的不同对象可以对同一个消息作出不同的响应”。比如H2O在不同温度下可能是固态、液态或者气态。 对象之间通过发送消息来传递信息,那么消息中应该包含三个方面的信息: 1) 要接收消息的对象 2) 接收对象应操作的方法 3) 方法中需要的参数 那么为什么编程语言要引入多态呢?多态
您可能关注的文档
- 施工组织试题答案第1章 绪论试题及答案.doc
- DSP原理与实训指导—高职电子信息—喻宗泉第一章 数字信号处理 DSP 基础知识.ppt
- 施工组织试题答案第3章 网络计划技术试题答案.doc
- 施工组织试题答案第3章 网络计划技术试题及答案 原件.doc
- 施工组织试题答案第4章 施工准备工作试题及答案.doc
- 无机化学 理论篇 第二版 高职化工类 王宝仁 教学基本要求 模拟试题及答案无机化学模拟试题答案.doc
- 消费心理学 第三版 消费心理学答案.doc
- 消费心理学 第三版 消费心理学电子教案.doc
- 新编财务管理 第四版 课件加答案 全 附表 财务管理 高职.doc
- 新编财务会计16版教案1 2章.doc
- Java语言程序设计 高职软件专业 赵景晖 迟勇 课件第一章 Java概述.ppt
- Java语言程序设计 高职软件专业 赵景晖 迟勇 课件模版.ppt
- 电机与拖动技术 刘爱民 49 The effective way of speeding up the equipment manufacturing industry talent cultivation.doc
- Java面向对象程序设计与应用开发教程第3讲.ppt
- 电机与拖动技术 刘爱民 培养装备制造业人才有效途径的探讨.doc
- Java面向对象程序设计与应用开发教程第二讲 Java类的特性一.ppt
- Java面向对象程序设计与应用开发教程第二讲 常用类编程 名片夹的设计与开发.ppt
- Java面向对象程序设计与应用开发教程第二讲 控制结构.ppt
- 电子教案 word版 +课程标准 大纲 电子教案:【项目1】网络营销的准备工作.doc
- Java面向对象程序设计与应用开发教程第二讲面向对象游戏设计 2.ppt
最近下载
- 特种作业操作证 制冷与空调运行操作作业 实操培训.pdf VIP
- CL01实验室内审检查记录表.pdf VIP
- 幼儿园:实习心得.docx VIP
- (高清版)DB52∕T 895-2014 混凝土砌块用轻质配砖.pdf VIP
- BS EN 10025-6-2004第6部分:技术交付条件用于高屈服强度的扁平产品淬火和结构钢回火的条件.pdf VIP
- 2025法律职业伦理历年试题及答案.doc VIP
- 《房颤诊断和治疗中国指南(2023)》解读PPT课件.pptx VIP
- 40篇短文搞定高考英语3500单词(回顾巩固用).pdf VIP
- 大学生职业生涯规划.pdf VIP
- 2025 公司招聘简章(模板).pdf VIP
原创力文档


文档评论(0)