java面向对象编程基本概念总结.kang

上传人:san****019 文档编号:70892505 上传时间:2019-01-18 格式:PPT 页数:48 大小:517.81KB
返回 下载 相关 举报
java面向对象编程基本概念总结.kang_第1页
第1页 / 共48页
java面向对象编程基本概念总结.kang_第2页
第2页 / 共48页
java面向对象编程基本概念总结.kang_第3页
第3页 / 共48页
java面向对象编程基本概念总结.kang_第4页
第4页 / 共48页
java面向对象编程基本概念总结.kang_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《java面向对象编程基本概念总结.kang》由会员分享,可在线阅读,更多相关《java面向对象编程基本概念总结.kang(48页珍藏版)》请在金锄头文库上搜索。

1、Java Programming,Kangkang Zhang ,Java面向对象编程,面向对象基本概念 Java面向对象编程 Java语言基础,2019/1/18,Java Programming,3,面向对象基本概念,对象 类 封装 继承,2019/1/18,Java Programming,4,面向对象,难以精确定义 从程序设计语言和编程技术开始,发展到软件领域的各个分支,并超出,渗透到体系机构、人工智能等非软件领域 仅就软件领域来说 思想精髓:从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造过程中尽可能运用人类的自然思维方式,2019/1/18,Java Progr

2、amming,5,面向对象方法,面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法,2019/1/18,Java Programming,6,语言鸿沟,2019/1/18,Java Programming,7,计算机语言的发展使鸿沟变窄,2019/1/18,Java Programming,8,过程化方法,系统是围绕着过程来组织的 系统的运行通过过程间的数据传送来实现 过程和数据清楚地分开 重点分别集中在数据结构、算法和顺序步骤上 过程非常难以重用 缺乏强有力的可视化建模技术 在分析和实现不同阶段的概念的差别很大 需要进行概念上的转换 造成了分析、

3、设计和实现间的范畴移位 设计模型离实现还有很长的一步,2019/1/18,Java Programming,9,面向对象方法,系统是围绕着对象组织的 系统的运行是通过对象间的消息传递而运行 相关的数据和行为捆绑在对象中 将问题域建模为对象使得在实现时非常自然地反应现实问题 易于重用,重用的粒度大(类) 可视化的模型表达能力非常强使得人们易于理解 支持强有力的概念例如抽象、封装、继承、多态等 可视化的问题模型可以演变为问题解决模型 设计模型距离实现只有很小的一步,2019/1/18,Java Programming,10,利用面向对象开发的软件,减少软件的复杂性 可维护性 可扩展性 可重用性 表

4、述非常自然 将数据和功能并在一起考虑 分析和实现的隔阂变得非常小,2019/1/18,Java Programming,11,对象(Object),一切概念上的存在,小至单个整型数或字符串,大至由许多部件组成的系统均可称作对象,对象是系统中用来描述客观事物的一个实体,它是构成系统的基本单位。,2019/1/18,Java Programming,12,对象的两个侧面,对象具有主动侧面和被动侧面 被动侧面指其相对静止侧面,由静态的属性表示(数据) 而主动侧面指把对象看作主动机制,即动态的行为(方法/服务/操作) 属性决定行为,行为可以改变属性 对象是属性和行为的封装体,2019/1/18,Jav

5、a Programming,13,对象的性质,对象具有封装性(encapsulation) 信息隐藏(information hiding) 对象具有自治性(autonomy) 对象具有通信性 对象具有被动性,2019/1/18,Java Programming,14,对象的特性(property),对象的属性和方法称作对象的特性(property) 属性值即对象的状态 方法即对象的行为,2019/1/18,Java Programming,15,对象标识(object identifier),缩写为OID 是将一个对象和其它对象加以区别的标识符 一个对象标识和对象永久结合在一起,不管这个对象

6、状态如何变化,一直到该对象消亡为止,2019/1/18,Java Programming,16,面向对象程序设计语言中的OID,强调对象标识的表达能力 用变量名充当标识 可寻址性和标识这两个概念做了混合,2019/1/18,Java Programming,17,类(Class),对象按照不同的性质划分为不同的类 同类对象在数据和操作性质方面具有共性 把一组对象的共同特性加以抽象并存贮在一个类中 类是对象之上的抽象,有了类之后,对象则是类的具体化,是类的实例 类是静态概念,对象是动态概念,2019/1/18,Java Programming,18,类,类是具有相同属性和行为的一组对象的集合,它

7、为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分,2019/1/18,Java Programming,19,程序设计语言中的类,类是一个独立的程序单位,程序由一个或多个类组成 类的作用是定义对象,在程序运行过程中,根据需要创建类的对象(即其实例) 有丰富的类库,2019/1/18,Java Programming,20,在程序设计语言种类的作用,一是作为对象的描述机制,刻划一组对象的公共属性和行为 二是作为程序的基本单位,它是支持模块化设计的设施,并且类上的分类关系是模块划分的规范标准,2019/1/18,Java Programming,21,方法(Method)

8、,定义于某一特定类上的操作与规则 具有同类的对象才可为该类的方法所操作 这组方法表达了该类对象的动态性质,而对于其它类的对象可能无意义,乃至非法 规则,说明了对象的其他特征之间是怎样联系的,或者对象在什么条件下是可行的 方法也称作行为(behavior),2019/1/18,Java Programming,22,类的实例,属于某个类的对象称为该类的一个实例(instance) 类和对象间具有instance-of关系 一个实例是从一个类创建而来的对象 类描述了这个实例的行为(方法)及结构(属性),2019/1/18,Java Programming,23,类的实例续,每个实例具有一个对象标识

9、 许多不同的实例可以由某一个类所创造 每个实例可由该类上定义的操作(方法)来操纵 不同的实例可以由不同的操作序列来操纵,结果是得到不同的状态 如果这些实例严格地用同样的操作方法进行操纵,必定得到相同的状态,2019/1/18,Java Programming,24,类及实例具有下面特征,同一个类的不同实例具有相同的数据结构,承受的是同一方法集合所定义的操作,因而具有相同的行为 同一个类的不同实例可以持有不同的值,因而可以有不同的状态 实例的初始状态(初值)可以在实例化中确定,2019/1/18,Java Programming,25,类对象,类本身也是一个对象 这个特殊的对象也有其属性和方法,

10、我们称之为类属性和类方法 普通对象的属性和方法称作实例属性和实例方法,2019/1/18,Java Programming,26,动态实例化和静态实例化,实例化:创建一个对象的过程 静态实例化:在编译时刻完成的实例化 动态实例化:在运行时刻完成的实例化 Java语言都是动态实例化,2019/1/18,Java Programming,27,动态联编(dynamic binding),联编(binding)是把一个过程调用和响应这个调用而需要将执行的代码加以结合的过程 联编在编译时刻进行的叫静态联编(static binding) 动态联编则是在运行时(run time)进行的,因此,一个给定的

11、过程调用和代码的结合直到调用发生时才得以进行,因而也叫迟后联编(late binding),2019/1/18,Java Programming,28,封装(encapsulation),所有信息都存贮在对象中 即其数据及行为都封装在对象中 影响对象的唯一方式是执行它所属的类的方法即执行作用于其上的操作 信息隐藏(information hiding) 将其内部结构从其环境中隐藏起来 要是对对象的数据进行读写,必须将消息传递给相应对象,得到消息的对象调用其相应的方法对其数据进行读写 当使用对象时,不必知道对象的属性及行为在内部是如何表示和实现的,只须知道它提供了那些方法(操作)即可,2019/

12、1/18,Java Programming,29,可见性(visibility),封装的副作用 属性的读写方法 分类 纯OO:严格封装 混合型 全可见 折衷方法:用户指定,2019/1/18,Java Programming,30,继承(inheritance),继承是一种使用户得以在一个类的基础上建立新的类的技术 新的类自动继承旧类的属性和行为特征,并可具备某些附加的特征或某些限制 新类称作旧类的子类,旧类称作新类的超类 继承机制的强有力之处还在于它允许程序设计人员可重用一个未必完全符合要求的类,允许对该类进行修改而不至于在该类的其它部分引起有害的副作用 是其它语言所没有的,2019/1/1

13、8,Java Programming,31,超类(superclass)和子类(subclass),已存在的类通常称作超类 新的类通常称作子类 子类不仅可以继承超类的方法,也可以继承超类的属性 如果超类中的某些方法不适合与子类,则可以重置这些方法,2019/1/18,Java Programming,32,超类和子类的定义,如果类C能使用类B中的方法及属性,称B是C的超类,C是B的子类,也称类C继承类B,IS-A联系,2019/1/18,Java Programming,33,继承的传递性,直接超类(子类) 间接超类(子类),2019/1/18,Java Programming,34,单继承,

14、如果一个类只有一个直接超类 单继承构成类之间的关系是一棵树,2019/1/18,Java Programming,35,多继承,如果一个类有多于一个的直接超类 多继承构成的类之间的关系是一个网格,2019/1/18,Java Programming,36,继承的说明,类间的共性 共性在一个类中指出,另外的类可以继承这些共性,可以重用这些共同的描述,2019/1/18,Java Programming,37,泛化和特化,泛化generalization: 通过抽取及共享共同特征,将这些共性抽取出作为超类放在继承层次的上端 抽取出的超类称作抽象类(abstract class) 抽象类一般没有实例

15、 特化(specialization):新类作为旧类的子类,2019/1/18,Java Programming,38,抽象类,泛化(generalization) :通过将若干类的所共享的公共特征抽取出来,形成一个新类,并且将这个类放到类继承层次的上端以供更多的类所重用 抽象类 抽象类不能创建实例 抽象类没有实例 bird,2019/1/18,Java Programming,39,替换原则,指对于类A和类B,如果B是A的子类,那么在任何情况下都可以用类B来替换类A,2019/1/18,Java Programming,40,重置和重定义,重置overriding:可以重新修正从超类继承下来

16、的属性及方法 重置是修改利用已存在类的一种简单而灵活的方法 但使得类层次不易理解 继承便变得不具有可传递性了 重定义redefination:操作的表示和操作的实现体将都改变 在重置中,只有操作的实现体被改变,而操作的说明及表示仍与以前一样,2019/1/18,Java Programming,41,子类能否直接访问超类中的属性 ?,可见性 public、protected和 private,2019/1/18,Java Programming,42,多态与重载,当一问题领域中的元素可以有多种解释 如果考虑的元素是名字,则多态的含义是一名多用 只用同一个方法名,可以有不同的语义及实现 引入多态的概念是为了得到更为灵活的方式使表示的形式尽可能与所表示的内容无关 重载是多态的一种形式,2019/1/18,Java Programming,43,重载分类,操作符重载(并不是新概念) - 符号( c语言) =(pascal语言,赋值,关系) 即席多态(操作名重载) 操作名重载指同一操作名可用于不同对象(或同一对象)上并产生不同结果 类属软件(ge

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号