疯狂Java讲义读书笔记02
Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征
继承封装和多态。
Java语言完全以对象为中心,Java程序最小的单位是类,整个Java程序由一个个类组成
面向对象的方式实际上由OOA、OOD、OOP组成
OOA:面向对象分析和OOD面向对象设计由UML(统一建模语言)描述
结构化程序设计里最小的单元是函数,每个函数都负责完成一个功能,用以接受一些输入数据,函数对这些输入数据进行处理,处理结束后输出一些数据。整个软件系统由一个个函数组成,其中入口是主函数,主函数依次调用其他的普通函数,普通函数之间依次调用。
设计不直观,与人类思维习惯不一致。
可扩展性不强。
任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种基本结构组合而成。
Java的方法类似于结构化程序设计的函数,因此此方法中代码的执行也是顺序结构。
面向对象是一种优秀的程序设计方法,它的基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。它从现实世界客观存在的事物(对象)出发来构造软件系统,并在系统构造中尽可能的运用人类的思维方式,强调直接以对象为中心思考问题。
面向对象的基本特征:
封装 将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能。
继承 软件复用的重要手段。
多态 子类对象可以直接赋值给父类对象,但是运行时依然表现出子类的行为特征。
Java不支持多继承
判断一门语言是否是面向对象的,通常可以使用继承和多态来加以判断。
面向对象和基于对象都实现了封装的概念,但是面向对象实现了继承和多态,而基于对象没有实现这些。
一些常见的uml
用例图:
用例图用于描述系统提供的功能,每个用例就是一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能。
用例图对系统的实现不做任何说明,仅仅是系统功能的描述。
用例是椭圆表示,角色是人形符号

用例图主要在需求分析阶段使用,主要用于描述系统实现的功能,方便与客户交流,保证系统需求的无二性,不要把用例图做的过多,过多的用例将导致难以阅读,难以理解,尽可能多的使用文字说明
类图:
客观世界的两个实体之间总是存在千丝万缕的联系,很多时候关联和属性的关键区别在于:类里的某个属性引用到另外一个实体时,则变成了关联。
关联有两种特例:聚合和组合
组合比聚合更加严格,例如学生既可以是篮球俱乐部成员也可以是书法聚类部成员,当某个实体组成另一个实体时,则该实体不能同时是另一个实体的部分。

2、泛化
泛化与继承是一个概念,都是指子类是一种特殊的父类。
3、依赖
如果一个类的改动会导致另一个类的改动,则称两个类之间存在依赖。依赖关系使用带箭头的虚线表示。
组件图:
对于现代大型应用程序而言通常不只是一个单独的类或者一组类可以完成,通常会由多个可部署的组件组成。
对于Java程序而言,可复用的组件通常打包成一个jar包,组件图是显示依赖关系。
部署图:
现代的软件工程早已超出早期的单机程序,整个软件系统可能是跨国家的分布式软件,软件的不同部分可能需要部署在不同的地方和不同平台。
部署图用于描述软件系统如何部署到硬件环境中,它的用途是显示软件系统不同的组件将在何处物理运行,以及如何彼此通信。

顺序图:
顺序图显示具体用例的详细流程,并显示流程中不同对象之间的调用关系,重点在于描述消息及其时间 顺序。

活动图和状态机图都被称为演化图,其区别和联系如下
活动图用于描述用例的内部活动或方法的流程,如果去除掉活动图中的并行活动描述,它就会变成流程图。
状态机图:描述一种对象生命周期中需要关注的不同状态,会详细刺激对象改变的事件,以及对象状态改变时采取的动作。
组合是has a
继承是is a
子类是特殊的一个父类

浙公网安备 33010602011771号