文章目录
2.1 面向对象
2.1.1 结构化程序设计简介(面向过程编程)
- 结构化程序设计方法主张按功能来分析系统需求,其主张原则可以概括为:自顶而下,逐步求精,模块化。
- 结构化程序设计主张(1)结构化分析(structured Analysis SA)、(2)结构化设计(Structured Design,SD)、(3)结构化编程(Structured Program)。
- 结构化程序设计里最小的程序设计单元函数。
2.1.2 程序的三种基本结构
- 顺序结构
- 选择结构
(1)单选泽;(2)双选择;(3)多选择;
- 循环结构
(1)当型循环;(2)直到型循环
2.1.3 面向对象程序设计简介
- 面向对象的基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。
- 面向对象方式开发的软件系统,最小单位是类,这些类可以生成系统中的多个对象,而这些对象则可以直接映像成可观世界的各种事物。
- 类定义=成员变量(状态数据)+方法(行为)
2.1.4 面向对象的基本特征
面向对象方法具有三个基本特征:封装、继承和多态。
- 封装:将对象的实现细节隐藏起来,通过一些公用的方法暴露该对象的功能。
- 继承:子类继承父类,直接获得父类的属性和方法。
- 多态:子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征。这意味着同一个类型的对象在执行同一个方法时,可能表现出不同的特性。
判断一门语言是否是面向对象的,通常可以使用继承和多态来判断。
2.2 UML(统一建模语言)
面向对象需要经过OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个阶段。
OOA:对目标系统进行分析,建立分析模型,并将之文档化。
OOD:用面向对象思想对OOA的结果进行细化,得出设计模型。
OOP:对OOA和OOD的分析、设计结果用统一的符号来描述、交流并记录。
UML图大致上可以分为静态图和动态图两部分。最常见的图包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图。
2.2.1 用例图
- 用例图用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能,而对系统功能的实现不做任何说明,仅仅是系统功能的描述。
- 用例图包括用例、角色、角色与用例的关系、以及系统内用例之间的关系。
- 用例图主要在需求分析的阶段使用,主要用于描述系统实现的功能,方便与客户交流,保证系统需求的无二性。
2.2.2 类图
- 类图表示系统中应该包含哪些实体、各实体之间如何关联。它显示了系统的静态结构,
- 类图可以用于表示逻辑类,也就是业务人员所谈及的事物种类。
- 类图的组成:类名、类的属性、类的方法。
- 类图除了表示实体之间的静态内部结构之外,还可以表示实体之间的相互关系。类之间的三种基本关系。
(1)关联(包括聚合、组合)
关联具有一定的方向性,可以分为单向关联和双向关联。
关联关系包括两种特例:聚合和组合。
聚合:当某个实体聚合成另一个实体时,它还可以组合成另一个实体。比如学生既可以是篮球俱乐部的成员,亦可以是书法俱乐部的成员。
组合:当某个实体组合成另一个实体时,不能再组成另一个实体。
(2)泛化(即继承):
(3)依赖
如果一个类的改动会导致另一个类的改动,则称两个类之间存在依赖关系。依赖关系用虚线表示。
2.2.3 组件图
组件图提供系统的物理视图,它的用途是显示系统中的软件对其他软件组件的依赖关系。
Java中的组件通常打包成一个jar或者war等文件。
2.2.4 部署图
部署图用于描述软件系统如何部署到硬件环境中,它的用途是显示软件系统不同的组件将在何处物理运行,以及他们将如何彼此间通信。
2.2.5 顺序图
顺序图显示具体用例的详细流程,并且显示流程中不同对象之间的调用关系,同时还可以很详细的显示对不用对象的不用调用。
顺序图描述了对象之间的交互关系,重点在描述消息及时间顺序。
2.2.6 活动图和状态机图
2.3 Java的面向对象特征
2.3.1 一切都是对象
Java语言中,除了8个基本数据类型外,一切都是对象。
2.3.2 类和对象
类:具有相同或相似性质的一组对象的抽象
对象:类的实例。