疯狂Java讲义第五版第2章 理解面向对象

Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征: 继承、封装和多态

Java语言完全以对象为中心,Java程序的最小程序单位是类,整个Java程序由一个一个的类组成。

面向对象的方式实际上由 OOA (面向对象分析)、 OOD (面向对象设计)和 OOP (面向对象编程) 三个部分有机组成,其中, OOA和OOD的结构需要使用一种方式来描述并记录,目前业界统一采用UML(统一建模语言 )来描述并记录OOA和OOD结果。

UML一共包括13种类型的图形,其常用的UML 图形有用例图、类图、组件图、部署图、顺序图、活动图和状态机图。

2.1 面向对象

两种主流的开发方法:结构化开发方法( C, Basic, Pascal等) 和面向对象开发方法( C++, Java, C#, Ruby等)。

2.1.1 结构化程序设计简介

在这里插入图片描述
在这里插入图片描述

2.1.2 程序的三种基本结构

  1. 顺序结构

  2. 选择结构(单选择,双选择,多选择)
    在这里插入图片描述

  3. 循环结构(当型-当条件为真时执行循环,直到型-直到条件为假时结束循环)
    在这里插入图片描述

2.1.3 面向对象程序设计简介

面向对象的基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。
成员变量(状态数据) +方法(行为) =类定义

在这里插入图片描述

2.1.4 面向对象的基本特征

面向对象方法具有三个基本特征:封装(Encapsulation),继承(Inheritance),多态(Polymorphism)

  1. 封装指的是将对象的实现细节隐藏起来,然后通过一些公用方法来暴露该对象的功能。
  2. 继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类作为一种特殊的父类,将直接获得父类的属性和方法。
  3. 多态指的是子类对象可以直接赋给父类变量,但运行时依然表现出子类的行为特征,这意味着一个类型的对象在执行同一个方法时,可能表现出多种行为特征。
    除此之外,抽象也是面向对象的重要部分,抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。

面向对象还支持如下几个功能

  • 对象是面向对象方法中最基本的概念,它的基本特点有:标识唯一性、分类性、多态性、封装性、模块独立性好。
  • 类是具有共同属性、共同方法的一类事物,类是对象的抽象,对象则是类的实例。类是整个软件系统最小的程序单元,类的封装性将各种信息细节隐藏起来,并通过公用方法来暴露该类对外所提供的功能,从而提高了类的内聚性,降低了对象之间的稿合性。
  • 对象间的这种相互合作需要一个机制协助进行,这样的机制称为"消息" 。消息是一个实例与另一个实例之间相互通信的机制。
  • 在面向对象方法中,类之间共享属性和操作的机制称为继承 ,继承具有传递性,继承可分为单继承(一个继承只允许有一个直接父类,即类等级为树形结构)与多继承( 一个类允许有多个直接父类)。

注意,在编程语言领域,还有一个"基于对象"的概念,"基于对象"也使用了对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象。也就是说,“基于对象"没有继承的特点:而"多态"则更需要继承,没有了继承的概念也就无从谈论"多态”。例如, JavaScript 就是基于对象的,它使用一些封装好的对象,调用对象的方法,设置对象的属性。但是它们无法让开发者派生新的类开发者只能使用现有对象的方法和属性。

判断一门语言是否是面向对象的,通常可以使用继承多态来加以判断,"面向对象"和"基于对象"都实现了"封装"的概念,但是面向对象实现了"继承和多态",而"基于对象"没有实现“继承和多态”

2.2 UML统一建模语言

面向对象软件开发需要经过 OOA (面向对象分析)、 OOD (面向对象设计)和 OOP (面向对象编程) 三个阶段,OOA 对目标系统进行分析、建立分析模型,并将之文档化; OOD 用面向对象的思想对OOA 的结果进行细化,得出设计模型。OOA 和 OOD 的分析、设计结果需要统一的符号来描述、交流并记录。UML 就是这种用于描述、记录 OOA 和 OOD 结果的符号表示法。
UML图大致上可分为静态图和动态图两种,UML 2.0的组成如图2.9所示:
在这里插入图片描述
UML一共包括13种类型的图形,其常用的UML 图形有用例图、类图、组件图、部署图、顺序图、活动图和状态机图。

2.2.1 用例图

在这里插入图片描述

2.2.2 类图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.3 组件图

在这里插入图片描述

2.2.4 部署图

在这里插入图片描述

2.2.5 顺序图

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值