面向对象ppt笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一部分面向对象概念及原理
面向对象概念:
⏹面向对象的方法是一种思维方法,指导软件的分析、设计和实现。
⏹对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便
对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描
述现实世界。
⏹构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降
低开发维护费用。
基本思想:使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计。
主要特点:
从问题域中客观存在的事物出发来构造软件系统,用对象作为对这些事物的抽象表示,并作为系统的基本构成单位。(对象)
用对象的属性表示事物的静态特征;用对象的服务(操作)表示事物的动态特征。
(属性与服务)
对象的属性与服务结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。(封装)
对事物进行分类。把具有相同属性和相同服务的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。(分类)
通过在不同程度上运用抽象的原则可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与服务,从而简化系统的构造过程及其文档。(继承)
复杂的对象可以用简单的对象作为其构成部分。(聚合)
对象之间通过消息进行通讯,以实现对象之间的动态联系。(消息)
通过关联表达对象之间的静态关系。(关联)
总结:用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性与服务刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、消息和关联如实地表达了问题域中事物之间实际存在的各种关系。
因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。
基本思想:
对象:1.拥有属性和操作2.对象之间的联系通过传递“消息”来完成
消息:由三部分组成——接收消息的对象—消息选择符—变元
“接收器”就是消息发送的对象。如果接收器接受了消息,那么同时它也接
受了消息所包含的行为责任。然后,接受器响应消息,执行相应的“方法”
以实现要求。
发送消息的对象不需要知道接收消息的对象如何对请求予以响应
消息的解释由接收器决定,并且随着接收器的不同而不同。
类:把具有相同特征的事物归为一个类。类是对具有相同数据和相同操作的一组对象的定义。
继承:继承表达了对象的一般与特殊的关系。
·特殊类的对象具有一般类的全部属性和服务。
·类被组织成有单个根节点的树状结构,称为继承层次结构。与类实例相关的内存和行为都会被树结构中的后代自动继承。
·在类层次结构中与某层相联系的信息(数据、行为)都会自动地提供地该层次结构的较低层次中。
·继承具有传递性。
多态性:多态性是指子类对象可以像父类对象那样使用,同样的消息可以发给父类对象,也可以发给子类对象。在类的不同层次中可以共享一个行为的名字,然而不同层次中每个类按自己需求来实现这个方法。
封装:面向对象的程序中把数据和实现操作的代码集中起来放在对象内部。适用对象的时候,只需要知道它向外界提供的接口形式,而无需知道它的数据结构细节和实现操作的算法。
条件:1.有一个清晰度边界2.有明确的接口3.受保护的内部实现
动态绑定:
⏹接收器搜索并执行相应的方法以响应给定的消息。
⏹如果没有找到匹配的方法,搜索就会传导到此类的父类。搜索会在父
类链上一直进行下去,直到找到匹配的方法,或者父类链结束。
⏹如果能在更高类层次找到相同名称的方法,所执行的方法就称为改写
了继承的行为。
总结:OOP定义
⏹OOP是基于递归设计的原则的:
⏹一切都是对象。
⏹计算通过对象间相互通信,请求其他对象执行动作来实现。对象间通过发送
和接收消息来通信。
⏹每个对象都有自己的内存,其中可能包括了其他的对象。
⏹每一个对象都是某个类的实例。类就是一组相似的对象。
⏹类是对象相关行为的储存库。也就是说,同一个类的所有对象都能执行同样
的动作。
⏹类被组织成有单个根节点的树状结构,被称为继承层次结构。与类实例相关
的内存和行为都会被树结构中的后代自动继承。
抽象思想:抽象是确定一个事物的本质特征的行为,使这个事物与其他事物区分开。
⏹是指对于一个过程或者一件制品的某些细节有目的的隐藏
⏹以便把其他方面、细节或者结构表达得更加清楚。(信息隐藏)
⏹抽象可以控制问题复杂性
⏹过程抽象、数据抽象
⏹抽象类是不能被实例化的类(对象是问题中某些事物的抽象,类是
对象的抽象)
⏹抽象类专供子类去继承(含有至少一个抽象方法),子类必须实现其
抽象方法。
⏹抽象类和抽象方法都用关键字abstract修饰。
接口:向客户保证类的行为方式的一种协定。(java中接口只有方法的定义没有方法的实现)
接口与抽象类的不同:
•.接口的数据成员必须初始化。
•.接口里的方法必须全部都声明成abstract,也就是说,接口不能像抽象类一样保有一般的方法,而必须全部是“抽象方法
•Java支持单继承,但可以实现多个接口。
•抽象类是对类的抽象。而接口只是一个行为的规范或规定。
接口的特点:
1、接口的访问控制修饰符只有public或者缺省。
2、接口类型也可以继承,并且可以多重继承
3、java的类层次结构中有一个顶级类Object ,接口没有
4、接口体内只能声明常量字段和抽象方法,并且被隐式声明为public,
static,final.当然可写可不写
接口实现:类中实现方法时,必须使用与该抽象方法完全一样的名字、返回类型和参数表,否则,就构成重载了在实现接口时public、abstract、final、static等修饰符不能被省略。
接口的使用:
1.不提供实现
2.接口定义新类型,可以声明变量
3.类的实例可以赋值给接口类型变量
4.接口实例= new 实现接口的类() ;
5.接口实例应该理解为:接口声明一个接口的引用。new 实现接口的类();
应理解为创建了一个类的实例。将创建的类的实例的地址赋给接口的引用。