第三章面向对象与对象模型
面向对象的程序设计(OOP)已成为现代软件开发的必然选择。通过掌握面向对象的技术,能开发出复杂、高级的
系统,这些系统是完整健全的,但又是可扩充的。OOP是建
立在把对象作为基本实体看待的面向对象的模型上的,这种
模型可以使对象之间能相互交互作用。
面向对象程序设计在一个好的面向对象程序设计语言(OOPL)的支持下能得到最好的实现。Java就是一种优秀
的OOPL,它提供了用来支持面向对象程序设计模型所需的一
切条件。Java有自己完善的对象模型,并提供了一个庞大的
Java类库,并有一套完整的面向对象解决方案和体系结构。
本章介绍面向对象的概念和对象建模的方法,讲解Java 对象模型中的核心部分:类及类的成员。使读者学会如何用
创建和使用Java对象。
3.1 面向对象的概念
⏹面向对象方法学是面向对象程序设计技术的理论基础。面向对象程
序设计具有符合人类抽象思维的认知习惯,使得程序开发过程与人
类的认知过程同步,便于建立规范化的分析设计方法,使程序具有
更好的封装性、可读性、可维护性、可重用性等一系列优点。
⏹面向对象技术以基本对象模型为单位,将对象内部处理细节封装在
模型内部,重视对象模块间的接口联系和对象与外部环境间的联系,能层次清晰地表示对象模型。面向对象的特点主要概括为抽象性、
继承性、封装性和多态性。
⏹模型提供了一个物理系统的抽象,模型可以让工程师们忽略无关的
细节而把注意力集中到系统的重要部分来进行思考。软件模型除了
用于系统设计还可以用在很多的方面,例如预期系统的质量、当系
统的某些方面变化时推理特定的属性、测试关键的系统特征等。模
型可以先开发出来用于指导物理系统的开发,或者也可以由一个已
存在的系统或者开发中的系统产生,作为理解系统行为、优化系统
实现的手段。统一建模语言UML是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。
3.1.1 面向对象基本原理
面向对象技术,正是利用对现实世界中对象的抽象和对象之间相互关联和相互作用的描述来对现实世界进行模拟,并且使其映射到目标系统中。所以面向对象的特点主要概括为抽象性、继承性、封装性和多态性。
⏹抽象性——指对现实世界中某一类实体或事件进行抽象,从中提取共同信息,
出共同规律,反过来又把它们集中在一个集合中,定义为所设计目标系统中
的对象。
⏹继承性——新的对象类由继承原有对象类的某些特性或全部特性而产生出来,
原有对象类称为基类(或超类、父类),新的对象类称为派生类(或子类),
派生类可以直接继承基类的共性,又允许派生类发展自己的个性。继承性简化
了对新的对象类的设计。
⏹封装性——是指对象的使用者通过预先定义的接口关联到某一对象的服务和数
据时,无需知道这些服务是如何实现的。即用户使用对象时无需知道对象内部
的运行细节。这样,以前所开发的系统中已使用的对象能够在新系统中重新采
用,减少了新系统中分析、设计和编程的工作量。
⏹多态性——是指不同类型的对象可以对相同的激励做出适当的不同相应的能力。
多态性丰富了对象的内容,扩大了对象的适应性,改变了对象单一继承的关系。
3.1.2 建立面向对象的思维
⏹对象是建立面向对象程序所依赖的基本单元。用更专业的话来说,
所谓对象就是一种代码的实例,这种代码执行特定的功能,具有
自包含或者封装的性质。这种封装代码通常叫做类。
⏹“封装”的对象具有自己的函数,这种函数被称作“方法”,而
对象的属性则被称为“字段”。当对象内部定义了字段的时候,
它们通常不能扩展到实例以外。
⏹用于创建对象的类有一种功能强大的特性,这就是它们可以继承
其他类。在继承了类后,我们可以通过覆盖(override)方法来
获得希望的结果。
⏹面向对象强调从问题域的概念到软件程序和界面的直接映射;心
理学的研究也表明,把客观世界看成是许多对象更接近人类的自
然思维方式。对象比函数更为稳定;软件需求的变动往往是功能
相关的变动,而其功能的执行者对象通常不会有大的变动。另外,
面向对象的开发也支持、鼓励软件工程实践中的信息隐藏、数据
抽象和封装。在一个对象内部的修改被局部隔离。面向对象开发
的软件易于修改、扩充和维护。
3.1.3 UML和对象建模 模型与建模模型提
供了一个物理系统的
抽象,模型可以让工
程师们忽略无关的细
节而把注意力集中到
系统的重要部分来进
行思考。从软件建模
技术的发展过程中,
人们认识到建模语言
java可以开发什么软件是一种图形化的文档
描述性语言,利用它
可以解决在软件建模
过程中存在的沟通障
碍问题。
3.1.3 UML和对象建模
统一建模语言
UML是一个通
用的可视化建
模语言,用于
对软件进行描
述、可视化处
理、构造和建
立软件系统制
品的文档。它可以把人们对所需要构建系统的想法和理解记录下来,以便用于对系统的分析、设计、研究、配置和维护。
关联关系
泛化关系
(继承关系)
字段
方法
类名称
可见性
(-# +
)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论