理解Java的面向对象—Java学习(2)

一、程序设计的3种基本结构

1.顺序结构
2.选择结构
3.循环结构

二、面向对象程序设计简介

1.采用面向对象方式开发的系统,最小程序单元是类,以对象为中心
eg:猪八戒.吃(西瓜);
2.成员变量(状态数据)+方法(行为)=类定义
3.面向过程的程序单位是函数(相当于方法),以函数为中心
eg:吃(猪八戒,西瓜);

三、面向对象的基本特征

1.封装:隐藏对象细节,通过公共方法暴漏该对象的功能
2.继承:实现软件复用,子类直接获得父类的属性和方法
3.多态:同一个对象执行同一方法时可能表现出多种行为特征
4.抽象不是基本特征,但是重要的一部分:忽略不重要的部分(

四、UML(统一建模语言)

面向对象开发需要经过:
OOA(面向对象分析):分析、建立模型、并文档化
OOD(面向对象设计):对OOA进行细化,得出设计模型
OOP(面向对象编程):

UML即用于描述、记录OOA与OOD结果的符号表示法,共有13种UML图形,最常用的:
1.用例图: 仅仅是系统功能的描述,一般表示出用例的组织关系,用在需求分析,与类无联系
1.每个用例代表系统的一个功能模块
2.依赖表示用例之间的关系
这里写图片描述

2.类图: 表示系统中应该有哪些实体,各实体之间如何关联,使用3个矩形表示
-:表示private
+:表示public
#:表示private
这里写图片描述

类之间有三种关系:
1.关联(聚合、组合):特殊的是聚合和组合,都有部分跟整体的关系,组合更加严格
这里写图片描述


2.泛化(与继承同一个概念):类之间的继承关系,类实现接口可视为一种特殊的继承,用带空心的虚线表示
这里写图片描述


3.依赖:一个类的改动会带动另一个类的改动,箭头指向被依赖的实体
改动的类将消息发给另一个类;改动的类以另一个类作为数据部分;改动的类以另一个类作为操作参数
这里写图片描述

3.组件图: 提供系统的物理图,显示系统中的软件对其他软件组件(例如函数库)的依赖关系

通常包括:组件、接口和Port等图元
圆圈代表接口,位于组件边界上的小矩形代表Port
组件的接口表示他能对外提供的服务范围:2种表现方式:1.用一条实线连接到组件边界的圆圈表示2.使用位于组件内部的圆圈表示
组件除了对外提供服务,还能依赖于某个接口,使用一条半圆的实线表示
这里写图片描述

4.部署图:用于描述软件系统如何部署到硬件环境,显示软件系统不同的组件将如何物理运行,以及如何彼此通信,符号包括组件图中使用的符号,另外还增加了节点的概念,

节点:使用三维立方体表示节点,节点名称位于立方体顶部,各种计算机资源的通用名称,主要包括处理机(能够执行程序的硬件构建)跟设备(不具有计算能力的硬件构件)两种类型
这里写图片描述
整个应用分为5个组件:部署图准确的表现了各组件之间的依赖关系,除此之外,部署图的重点在于物理节点上,如图反映了该应用需要部署在4个物理节点上,
普通客户端无需部署任何组件,直接用客户端浏览器即可,
管理者客户机上需要部署UI界面
应用服务器上需要部署Student,Administrator和应用持久层三个组件
数据库服务器上需要部署Student数据库


5.顺序图: 描述了对象之间的交互(顺序图跟通信图都被称之为交互图),重点在于描述消息及其时间顺序包括两个维度:
1.垂直维度:以发生的时间顺序显示消息/调用的序列
2.水平维度:显示消息被发送到的对象实例

顺序图关键在于对象之间的消息,箭头表示消息,消息通常表现为对象调用另一个对象的方法或者方法的返回值。
3.顺序图的绘制:顶部每个框表示每个类的实例(对象),框中的类实例名称和类名称之间用冒号或空格分隔
顺序图擅长表现对象之间的协作顺序,不擅长表现行为的准确定义
这里写图片描述

6.活动图:一个开始可以有多个结束 7.状态机图

五、Java的面向对象特征

**1、一切都是对象:**除了8个基本数据类型值除外,一切都是对象,对象有状态(用数值来描述,通过为对象定义成员变量来描述对象的状态),对象还有操作(可以改变状态),也称为对象的行为,Java通过为对象定义方法来描述对象的行为。
对象是Java程序的核心,实现了数据和操作的结合,把数据和对数据的操作封装成了一个有机的整体。

Java语言不允许直接访问对象,而是通过对象的引用来操作对象。
**2.类和对象:**类:具有相同或者相似性质的一组对象的抽象。
对象也称为实例。对象的抽象化是类,类的具体化是对象。

类通常有两种主要的结构关系:
(1)一般到特殊:典型的继承关系,extends表示, “is a ”关系,苹果is a 水果
(2)整体到部分结构关系:组装结构,典型的组合关系,“has a ”关系,

定义了类之后就可以用new关键字来创建指定类的对象,没给我类可以有任意个对象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章