第二部分 理解面向对象

Java完全支持面向对象的三种基本特征:封装、继承、多态
Java语言完全以对象为中心,Java程序最小程序单位是类,整个Java对象由一个一个的类组成。
面向对象的方式实际上由OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)三个部分组成,其中OOA和OOD的结构需要使用一种方式来描述记录,目前业界统一采用UML(统一建模语言)来描述OOA和OOD的结果。
目前UML的最新版本是2.0,它一共包括13中类型的图形,可以很好滴描述并记录软件分析、设计结果。通常常用的有用例图、类图、组件图、部署图、顺序图、活动图和状态机图。

一、面向对象

1、结构化程序设计及简介
结构化程序设计主张按功能来分析系统需求,主要原则可以概括为自顶向下、逐步求精、模块化等。
首先要采用结构化分析(Structured Analysis,SA)对系统进行需求分析;
然后使用结构化设计(Structured Design,SD)对系统进行概要设计、详细设计
最后采用结构化编程(Structured Program,SP)实现系统。;

结构化程序设计里最小的程序单元,每个函数都负责完成一个功能,用以接受一些输入数据,函数对这些输入数据进行处理,处理结束后输出一些数据。整个软件系统由一个个函数组成,其中作为程序入口的函数被称为主函数,主函数依次调用其他普通函数,普通函数之间一次调用,从而完成整个系统的功能。
在这里插入图片描述
结构化程序设计方式有如下两个局限性:

  • 设计不够直观,与人类习惯思维不一致。采用结构化程序分析、设计时,开发者需要将客观世界模型分解成一个个功能,每个功能用以完成一定的数据处理。
  • 适应性差,可扩展性不强,由于结构化设计采用自顶向下的设计方式,所以当用户的需求发生改变,或需要修改现有的实现方式,都需要自顶向下地修改模块结构,这种方法的维护成本想当高。

2.程序的三种基本结构
Java语言中拒绝使用GOTO语句,但它将goto作为保留字,意思是目前还没有使用,未来也许会使用。
2.1顺序结构
各操作按照它们在源代码中的排列顺序依次执行。
2.2选择结构
根据某个特定的条件选择其中的一个分支执行,选择结构有单选择双选择多选择三种形式。
在这里插入图片描述
在这里插入图片描述
2.3循环结构
表示程序反复执行某个或某些操作,直到某种条件为真或假时才停止循环。在循环结构中最重要的是:在什么情况下执行循环?那些操作需要重复执行?
循环结构的基本形式有两种:当型循环和直到型循环。
当:先判断条件,当条件为真,执行循环体,并且在循环体结束时自动返回到循环入口处,再次判断循环条件;如果条件为假,则退出循环体到达流程出口处。因为是“当条件为真执行循环”,即先判断后执行,所以被称为“当型循环”
直到型循环:从入口处直接执行循环体,循环体结束时判断条件,如果条件为真,则返回入口处继续执行循环体,直到条件为假时退出循环体到达流程出口处。先执行,后判断

===============================================================
2.4面向对象的基本特征:封装、继承、多态

  • 封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能;
  • 继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法。
  • 多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着同一个类型的对象在执行同一个方法时,可以表现出多种行为特征。

三、UML介绍

通常常用的有用例图、类图、组件图、部署图、顺序图、活动图和状态机图

软件开发需要经过OOA、OOD、OOP三个阶段。OOA对目标系统进行分析,建立分析模型,并将之文档化;OOD用面向对象的思想对OOA的结果进行细化,得出设计模式。OOA和OOD的分析、设计结果需要统一的符号来描述、交流并记录。
在这里插入图片描述
1.用例图
描述系统提供的系统功能,每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能,用例图对系统的实现不做任何说明,仅仅是系统功能的描述。
在这里插入图片描述
2.类图
标识系统中应该包含哪些实体,各实体间如何关联。显示了系统的静态结构。
+:public
-:private
#:protect
三种基本关系:

  • 关联:聚合、组合

  • 泛化:继承同一概念

  • 依赖
    在这里插入图片描述
    在这里插入图片描述
    3.组件图
    提供系统的物理视图,用途是显示系统中软件对其他软件组件的依赖关系。
    两种表现形式:

  • 用一条实线连接到组件便捷的圈圈表示

  • 使用位于组件内部的圆圈表示
    在这里插入图片描述

4.部署图
用于描述软件系统如何部署到硬件环境中,显示软件系统不同组件将在何处物理运行,以及如何彼此通信。
在这里插入图片描述
5.顺序图
具体显示用例的详细流程,并且显示流程中不同对象之间的调用关系,同时还可以详细地显示对不同对象的不同调用。
描述了对象之间交互,重点在于描述消息何其时间顺序。
在这里插入图片描述
6.活动图
活动图和状态机图都被成为演化图。
在这里插入图片描述
7.状态机图
表示某个对象所处的不同状态该类的状态转化信息。
五基本要素:

  • 初始状态:使用实心圆来绘制
  • 状态之间的转换:使用具有带箭头的线段来绘制
  • 状态:使用圆角矩形来绘制
  • 判断点:使用空心圆来绘制
  • 一个或者多个终止点:使用内不包含实心圆的圆来绘制
    -在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值