面向对象

什么是面向对象

在目前的软件开发领域有两种主流的开发方法,分别是结构化开发方法和面向对象开发方法。早期的编程语言如C、Basic、Pascal等都是结构化编程语言,随着软件开发技术的逐渐发展,人们发现面向对象可以提供更好的可重用性、可扩展性和可维护性,于是催生了大量的面向对象的编程语言,如C++、Java、C#和Ruby等。

面向对象程序设计即OOP,是Object-Oriented Programming的缩写。面向对象编程技术是一种起源于20世纪60年代的Simula语言,其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Langunianling,OOPL)实现。由于很多原因,国内大部分程序设计人员并没有很深的OOP以及OOPL理论,很多人从一开始学习到工作很多年都只是接触到C/C++、Java等静态类型语言,而对纯粹的OOP思想以及动态类型语言知之甚少。

对象的产生通常基于两种基本方式,分别是以原型对象为基础产生新对象和以类为基础产生新对象。

1.基于原型

原型模型是以一个有代表性的对象为基础来产生各种新的对象,并由此继续产生更符合实际应用的对象。而原型—委托也是OOP中的对象抽象,是代码共享机制中的一种。

2.基于类

一个类提供了一个或多个对象的通用性描叙。从形式化的观点看,类与类型有关,因此,一个类相当于是从该类中产生的实例的集合。

Java的面向对象编程

面向对象编程方法学是Java编程的指导思想。在使用Java进行编程时,应该首先利用对象建模技术(OMT)来分析目标问题,抽象出相关对象的共性,对它们进行分类,并分析各类之间的关系;然后再用类来描述同一类对象,归纳出类之间的关系。Coad和Yourdon在对象建模技术、面向对象编程和知识库系统的基础之上设计了一整套面向对象的方法,具体来说分为面向对象分析(OOA)和面向对象设计(OOD)。对象建模技术、面向对象分析和面向对象设计共同构成了系统设计的过程,如图1所示。

Java的面向对象编程

图1 系统设计处理流程

UML统一建模语言

在进行对象建模、面向对象分析和设计的过程中,需要使用建模语言来描述分析的过程和结果。统一建模语言即UML,是Unified Modeling Langunianling的缩写。UML是为了实现上述目标而设计的一种标准通用的设计语言。

1.UML图的类型

UML为我们提供了多种类型的模型描述图,当在某种给定的方法学中使用这些图时,人们就能更容易理解和交流设计思想。UML图可以分为如下3种类型。

(1)静态图。

静态图即Static Diagram,其功能是描述了不发生任何变化的软件元素的逻辑结构,描绘了类、对象和数据结构及其存在于它们之间的关系。

(2)动态图。

动态图即Dynamic Diagram,其功能是展示软件实体在运行期间的的变化,主要描绘了执行流程、实体改变状态的方式。

(3)物理图。

物理图即Physical Diagram,其功能是显示软件实体不变化的物理结构,主要用来描绘库文件、字节文件和数据文件等,以及存在于它们之间的相互关系。

2.类图和对象图

在Java中,通常使用类图和对象图来表示项目内程序类的结构和各元素间的对应关系。在下面的内容中,将简要介绍类图和对象图的基本知识。

(1)类图。

类图表示不同的实体间的相互关系,显示了系统的静态结构。类图可用于表示逻辑类,逻辑类通常是指事物的种类,比如球队、电影之类的抽象描述。类图还可以用于表示实现类,实现类就是程序员要编写的类。实现类图与逻辑类图可能会用来描述一些相同的类。然而,实现类图与逻辑类图不会使用相同的描述属性。

类图通常用矩形表示,并在矩形内将类分为3个部分。其中最上面的部分显示类的名称,中间部分显示类的属性,最下面的部分显示类的方法,例如图2所示的格式。

Java的面向对象编程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值