




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaProgramming KangkangZhangzhangkk Java面向对象编程 面向对象基本概念Java面向对象编程Java语言基础 2019 12 28 JavaProgramming 3 面向对象基本概念 对象类封装继承 2019 12 28 JavaProgramming 4 面向对象 难以精确定义从程序设计语言和编程技术开始 发展到软件领域的各个分支 并超出 渗透到体系机构 人工智能等非软件领域仅就软件领域来说思想精髓 从现实世界中客观存在的事物 即对象 出发来构造软件系统 并在系统构造过程中尽可能运用人类的自然思维方式 2019 12 28 JavaProgramming 5 面向对象方法 面向对象方法是一种运用对象 类 继承 封装 聚合 消息传递 多态性等概念来构造系统的软件开发方法 2019 12 28 JavaProgramming 6 语言鸿沟 2019 12 28 JavaProgramming 7 计算机语言的发展使鸿沟变窄 2019 12 28 JavaProgramming 8 过程化方法 系统是围绕着过程来组织的系统的运行通过过程间的数据传送来实现过程和数据清楚地分开重点分别集中在数据结构 算法和顺序步骤上过程非常难以重用缺乏强有力的可视化建模技术在分析和实现不同阶段的概念的差别很大需要进行概念上的转换造成了分析 设计和实现间的范畴移位设计模型离实现还有很长的一步 2019 12 28 JavaProgramming 9 面向对象方法 系统是围绕着对象组织的系统的运行是通过对象间的消息传递而运行相关的数据和行为捆绑在对象中将问题域建模为对象使得在实现时非常自然地反应现实问题易于重用 重用的粒度大 类 可视化的模型表达能力非常强使得人们易于理解支持强有力的概念例如抽象 封装 继承 多态等可视化的问题模型可以演变为问题解决模型设计模型距离实现只有很小的一步 2019 12 28 JavaProgramming 10 利用面向对象开发的软件 减少软件的复杂性可维护性可扩展性可重用性表述非常自然将数据和功能并在一起考虑分析和实现的隔阂变得非常小 2019 12 28 JavaProgramming 11 对象 Object 一切概念上的存在 小至单个整型数或字符串 大至由许多部件组成的系统均可称作对象 对象是系统中用来描述客观事物的一个实体 它是构成系统的基本单位 2019 12 28 JavaProgramming 12 对象的两个侧面 对象具有主动侧面和被动侧面被动侧面指其相对静止侧面 由静态的属性表示 数据 而主动侧面指把对象看作主动机制 即动态的行为 方法 服务 操作 属性决定行为 行为可以改变属性对象是属性和行为的封装体 2019 12 28 JavaProgramming 13 对象的性质 对象具有封装性 encapsulation 信息隐藏 informationhiding 对象具有自治性 autonomy 对象具有通信性对象具有被动性 2019 12 28 JavaProgramming 14 对象的特性 property 对象的属性和方法称作对象的特性 property 属性值即对象的状态方法即对象的行为 2019 12 28 JavaProgramming 15 对象标识 objectidentifier 缩写为OID是将一个对象和其它对象加以区别的标识符一个对象标识和对象永久结合在一起 不管这个对象状态如何变化 一直到该对象消亡为止 2019 12 28 JavaProgramming 16 面向对象程序设计语言中的OID 强调对象标识的表达能力用变量名充当标识可寻址性和标识这两个概念做了混合 2019 12 28 JavaProgramming 17 类 Class 对象按照不同的性质划分为不同的类同类对象在数据和操作性质方面具有共性把一组对象的共同特性加以抽象并存贮在一个类中类是对象之上的抽象 有了类之后 对象则是类的具体化 是类的实例类是静态概念 对象是动态概念 2019 12 28 JavaProgramming 18 类 类是具有相同属性和行为的一组对象的集合 它为属于该类的全部对象提供了统一的抽象描述 其内部包括属性和行为两个主要部分 2019 12 28 JavaProgramming 19 程序设计语言中的类 类是一个独立的程序单位 程序由一个或多个类组成类的作用是定义对象 在程序运行过程中 根据需要创建类的对象 即其实例 有丰富的类库 2019 12 28 JavaProgramming 20 在程序设计语言种类的作用 一是作为对象的描述机制 刻划一组对象的公共属性和行为二是作为程序的基本单位 它是支持模块化设计的设施 并且类上的分类关系是模块划分的规范标准 2019 12 28 JavaProgramming 21 方法 Method 定义于某一特定类上的操作与规则具有同类的对象才可为该类的方法所操作这组方法表达了该类对象的动态性质 而对于其它类的对象可能无意义 乃至非法规则 说明了对象的其他特征之间是怎样联系的 或者对象在什么条件下是可行的方法也称作行为 behavior 2019 12 28 JavaProgramming 22 类的实例 属于某个类的对象称为该类的一个实例 instance 类和对象间具有instance of关系一个实例是从一个类创建而来的对象类描述了这个实例的行为 方法 及结构 属性 2019 12 28 JavaProgramming 23 类的实例 续 每个实例具有一个对象标识许多不同的实例可以由某一个类所创造每个实例可由该类上定义的操作 方法 来操纵不同的实例可以由不同的操作序列来操纵 结果是得到不同的状态如果这些实例严格地用同样的操作方法进行操纵 必定得到相同的状态 2019 12 28 JavaProgramming 24 类及实例具有下面特征 同一个类的不同实例具有相同的数据结构 承受的是同一方法集合所定义的操作 因而具有相同的行为同一个类的不同实例可以持有不同的值 因而可以有不同的状态实例的初始状态 初值 可以在实例化中确定 2019 12 28 JavaProgramming 25 类对象 类本身也是一个对象这个特殊的对象也有其属性和方法 我们称之为类属性和类方法普通对象的属性和方法称作实例属性和实例方法 2019 12 28 JavaProgramming 26 动态实例化和静态实例化 实例化 创建一个对象的过程静态实例化 在编译时刻完成的实例化动态实例化 在运行时刻完成的实例化Java语言都是动态实例化 2019 12 28 JavaProgramming 27 动态联编 dynamicbinding 联编 binding 是把一个过程调用和响应这个调用而需要将执行的代码加以结合的过程联编在编译时刻进行的叫静态联编 staticbinding 动态联编则是在运行时 runtime 进行的 因此 一个给定的过程调用和代码的结合直到调用发生时才得以进行 因而也叫迟后联编 latebinding 2019 12 28 JavaProgramming 28 封装 encapsulation 所有信息都存贮在对象中即其数据及行为都封装在对象中影响对象的唯一方式是执行它所属的类的方法即执行作用于其上的操作信息隐藏 informationhiding 将其内部结构从其环境中隐藏起来要是对对象的数据进行读写 必须将消息传递给相应对象 得到消息的对象调用其相应的方法对其数据进行读写当使用对象时 不必知道对象的属性及行为在内部是如何表示和实现的 只须知道它提供了那些方法 操作 即可 2019 12 28 JavaProgramming 29 可见性 visibility 封装的副作用属性的读写方法分类纯OO 严格封装混合型全可见折衷方法 用户指定 2019 12 28 JavaProgramming 30 继承 inheritance 继承是一种使用户得以在一个类的基础上建立新的类的技术新的类自动继承旧类的属性和行为特征 并可具备某些附加的特征或某些限制新类称作旧类的子类 旧类称作新类的超类继承机制的强有力之处还在于它允许程序设计人员可重用一个未必完全符合要求的类 允许对该类进行修改而不至于在该类的其它部分引起有害的副作用是其它语言所没有的 2019 12 28 JavaProgramming 31 超类 superclass 和子类 subclass 已存在的类通常称作超类新的类通常称作子类子类不仅可以继承超类的方法 也可以继承超类的属性如果超类中的某些方法不适合与子类 则可以重置这些方法 2019 12 28 JavaProgramming 32 超类和子类的定义 如果类C能使用类B中的方法及属性 称B是C的超类 C是B的子类 也称类C继承类B IS A联系 2019 12 28 JavaProgramming 33 继承的传递性 直接超类 子类 间接超类 子类 2019 12 28 JavaProgramming 34 单继承 如果一个类只有一个直接超类单继承构成类之间的关系是一棵树 2019 12 28 JavaProgramming 35 多继承 如果一个类有多于一个的直接超类多继承构成的类之间的关系是一个网格 2019 12 28 JavaProgramming 36 继承的说明 类间的共性共性在一个类中指出 另外的类可以继承这些共性 可以重用这些共同的描述 2019 12 28 JavaProgramming 37 泛化和特化 泛化generalization 通过抽取及共享共同特征 将这些共性抽取出作为超类放在继承层次的上端抽取出的超类称作抽象类 abstractclass 抽象类一般没有实例特化 specialization 新类作为旧类的子类 2019 12 28 JavaProgramming 38 抽象类 泛化 generalization 通过将若干类的所共享的公共特征抽取出来 形成一个新类 并且将这个类放到类继承层次的上端以供更多的类所重用抽象类抽象类不能创建实例抽象类没有实例bird 2019 12 28 JavaProgramming 39 替换原则 指对于类A和类B 如果B是A的子类 那么在任何情况下都可以用类B来替换类A 2019 12 28 JavaProgramming 40 重置和重定义 重置overriding 可以重新修正从超类继承下来的属性及方法重置是修改利用已存在类的一种简单而灵活的方法但使得类层次不易理解继承便变得不具有可传递性了重定义redefination 操作的表示和操作的实现体将都改变在重置中 只有操作的实现体被改变 而操作的说明及表示仍与以前一样 2019 12 28 JavaProgramming 41 子类能否直接访问超类中的属性 可见性public protected和private 2019 12 28 JavaProgramming 42 多态与重载 当一问题领域中的元素可以有多种解释如果考虑的元素是名字 则多态的含义是一名多用只用同一个方法名 可以有不同的语义及实现引入多态的概念是为了得到更为灵活的方式使表示的形式尽可能与所表示的内容无关重载是多态的一种形式 2019 12 28 JavaProgramming 43 重载分类 操作符重载 并不是新概念 符号 c语言 pascal语言 赋值 关系 即席多态 操作名重载 操作名重载指同一操作名可用于不同对象 或同一对象 上并产生不同结果类属软件 genericsoftware 的重用 2019 12 28 JavaProgramming 44 Java面向对象编程 类的定义对象的创建与使用可见性类的继承接口包 2019 12 28 JavaProgramming 45 Java类的创建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房子装修协议合同书模板
- 新能源客船采购合同范本
- 租地建厂合同协议书范本
- 留学中介合同附加协议书
- 水果产地包销协议合同书
- 施工合同补充预付款协议
- 直播团队如何签协议合同
- 怎样写运营合作合同协议
- 教师雇佣合同协议书范本
- 房屋认购转让合同协议书
- GB/T 6344-2008软质泡沫聚合材料拉伸强度和断裂伸长率的测定
- GB/T 39201-2020高铝粉煤灰提取氧化铝技术规范
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 20801.6-2020压力管道规范工业管道第6部分:安全防护
- GB/T 19355.2-2016锌覆盖层钢铁结构防腐蚀的指南和建议第2部分:热浸镀锌
- 核心素养视角下教师专业发展课件
- 企业信用信息公告系统年度报告模板:非私营其他企业
- 施工员钢筋工程知识培训(培训)课件
- 质量管理体系审核中常见的不合格项
- 共用水电费分割单模板
- 《阿房宫赋》全篇覆盖理解性默写
评论
0/150
提交评论