面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)三个部分有机组成,其中OOA和OOD的结构需要用一种方式来描述并记录,目前业界统一采用UML(统一建模语言)来描述并记录OOA和OOD的结果。
面向对象
结构化程序设计简介
结构化程序设计方法主张按功能来分析系统需求,其主要原则可以概括为自顶向下、逐步求精、模块化等。结构化程序设计首先采用结构化分析(Structured Analysis,SA)方法对系统进行需求分析,然后使用结构化设计(Structured Design,SD)方法对系统进行概要设计、详细分析,最后采用结构化编程(Structured Program,SP)方法来实现系统。使用这种SA、SD和SP的方式可以较好地保证软件系统的开发进度和质量。
有以下两个局限性:
- 设计不够直观,与人类习惯思维不一致。采用结构化程序分析、设计时,开发者需要将客观模型分解成一个个功能,每个功能用以完成一定的数据处理
- 适应性差 ,可扩展性不强。由于结构化设计采用自顶向下的设计方式,所以当用户的需求发生改变,或需要修改现有的实现方式时,都需要自顶向下地修改模块结构,这种方式的维护成本相当高。
程序的三种基本结构
- 顺序结构
- 选择结构
- 循环结构
面向对象程序设计的简介
面向对象是一种更加优秀的程序设计方法,它的基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。他从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运行人类的自然思维方式,强调直接以现实世界中的事物(即对象)为中心来思考,认识问题,并根据这些事物的本质特点,把他们抽象地表示为系统中的类,作为系统的基本构造单元,这使得软件系统的组件可以直接映像到客观世界,并保存客观世界中事物及其相互关系的本来面貌。
面向对象的基本特征
面向对象方法具有三个基本特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism),其中封装指的是将兑现的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;继承是面向对象实现软件复用的重要手段,当子类继承父类之后,子类作为一种特殊的父类,将直接获得父类的属性和方法;多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可能表现出多种行为特征。
## UML(统一建模语言)介绍
Java 的面向对象特征
一切皆对象
在Java语言中,除了8个基本的数据类型之外,一切均是对象,而对象是面向对象程序设计的中心。对象是人们要研究的任何事物,从最简单的整数到复杂的飞机等都是可看做对象,它不仅仅能表示具体的事物,还能表示抽象的规划、计划或事件。
对象具有状态,一个对象用数据值来描述他的状态。Java通过对象定义成员变量来描述对象的状态;对象还有操作,这些操作可以改变对象的状态,对象的操作也被称为对象的行为,Java通过为对象定义方法来描述对象的行为。
对象实现了数据和操作的结合,对象把数据和对数据的操作封装成一个有机的整体。对象是Java的核心,所以Java里对象具有唯一性,每个对象都有一个标识符来引用他,如果某个对象失去了标识,这个对象将变成垃圾,只能等着系统垃圾回收机制来回收它。Java语言不允许直接访问对象,而是通过对对象的引用来操作对象。
类和对象
客观世界中有若干的类,这些类有一定的结构关系。通常是如下两种结构关系:
一般->特殊
整体->部分