第3章Java面向对象编程 n nsS Java面向对象程序设计 图
Java面向对象程序设计 第3章 Java 面向对象编程
31面向对象软件开发概述 n nsS Java面向对象程序设计 图
Java面向对象程序设计 3.1 面向对象软件开发概述
311面向对象程序设计基本概念 n nsS Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念
311面向对象程序设计基本概念 (1)程序设计方法的发展 设计方法 特点 代表性语言 用机器指令为特定硬件系统编制程序。其目标代码短,运行速度和 面向机器 效率高,但可读性和移植性差。 86系列汇编语言 用高级程序设计语言按计算机能够理解的逻辑来描述要解决的问题 Fortran(50年代) 面向过程及其解决方法。是过程驱动的,程序的可读性和移植性好,核心是 Basc(60年代) 数据结构和算法。但大型程序维护起来比较困难。 C(70年代) 用面向对象的编程语言把现实世界的实体描述成计算机能理解、可 C++(80年代) 面向对多操作的、具有一定属性和行为的对象,将数据及数据的操作封装在 Python(90年代) 一起,通过调用各对象的不同方法来完成相关事件。是事件驱动的 Java(90年代 其核心是类和对象,程序易于维护、扩充。 n Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 设计方法 特点 代表性语言 面向机器 用机器指令为特定硬件系统编制程序。其目标代码短,运行速度和 效率高,但可读性和移植性差。 86系列汇编语言 面向过程 用高级程序设计语言按计算机能够理解的逻辑来描述要解决的问题 及其解决方法。是过程驱动的,程序的可读性和移植性好,核心是 数据结构和算法。但大型程序维护起来比较困难。 Fortran(50年代) Basic(60年代) C(70年代) 面向对象 用面向对象的编程语言把现实世界的实体描述成计算机能理解、可 操作的、具有一定属性和行为的对象,将数据及数据的操作封装在 一起,通过调用各对象的不同方法来完成相关事件。是事件驱动的, 其核心是类和对象,程序易于维护 、扩充。 C++(80年代) Python(90年代) Java( 90年代) (1)程序设计方法的发展
31面向对象程序设计基本概念 (2)什么是“面向对象程序设计”? 面向对象程序设计( Object Oriented Programming,OOP)是种编程架 构,是种运用对象、类、继承、封装、聚合、关联、消息和多态等概念来构 造系统的软件开发方法。 其基本思想包括两个方面: 1)强调从现实世界中客观存在的事物(即对象)出发来构造软件系统 2)在系统构造中尽可能运用人类的自然思维方式 n Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 (2)什么是“面向对象程序设计” ? 面向对象程序设计(Object Oriented Programming,OOP)是一种编程架 构,是一种运用对象、类、继承、封装、聚合、关联、消息和多态等概念来构 造系统的软件开发方法。 其基本思想包括两个方面: 1)强调从现实世界中客观存在的事物(即对象)出发来构造软件系统 2)在系统构造中尽可能运用人类的自然思维方式
31面向对象程序设计基本概念 (3)面向对象程序设计常用术语 类(dass):是具有相同属性 和操作的一组对象的集合, 对象( object):是系统中 它为属于该类的全部对象提供了 用来描述客观事物的一个实体, 统一的抽象描述,由一个类名 是构成系统的一个基本单位, 一组属性和一组操作构成 由一组属性和施加这组属性的 组操作构成 封装:就是把对象的属性和操作结 合成一个独立的系统单位,并 属性:用来描述对象静态特征 常用 尽可能隐藏对象的内部细节。 (状态)的一个数据项 (Java中称之为:成员变量) 术语 继承:是指特殊类(子类)可以自动拥 有一般类(父类)的全部属性和操作 特殊类可以有自己定义的属性和操作 继承关系是代代传递的 操作:用来描述对象动态特 多态:是指在一般类中定义的属性 征(行为)的一个动作系列 或操作被特殊类继承之后,可以 (Java中称之为:方法) 具有不同的数据类型或表现 出不同的行为 n Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 (3)面向对象程序设计常用术语 类(class):是具有相同属性 和操作的一组对象的集合, 它为属于该类的全部对象提供了 统一的抽象描述,由一个类名、 一组属性和一组操作构成。 封装:就是把对象的属性和操作结 合成一个独立的系统单位,并 尽可能隐藏对象的内部细节。 继承:是指特殊类(子类)可以自动拥 有一般类(父类)的全部属性和操作。 特殊类可以有自己定义的属性和操作, 继承关系是代代传递的。 多态:是指在一般类中定义的属性 或操作被特殊类继承之后,可以 具有不同的数据类型或表现 出不同的行为。 对象(object):是系统中 用来描述客观事物的一个实体, 是构成系统的一个基本单位, 由一组属性和施加于这组属性的 一组操作构成。 属性:用来描述对象静态特征 (状态)的一个数据项。 (Java中称之为:成员变量) 操作:用来描述对象动态特 征(行为)的一个动作系列。 (Java中称之为:方法) 常用 术语
311面向对象程序设计基本概念 Student s1= new Student(“张三”) 计算机世界 现实世界 映射 对象 实体 头 抽 抽象 化 计算机逻辑的实现 抽象数据类 概念世界 Class Student{……} 学生 实体、对象与类的关系示意图 Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 Class Student { …… } Student s1=new Student (“张三”) 学生 实体、对象与类的关系示意图 对象 类 计算机世界 实体 现实世界 抽象数据类 概念世界 实 例 化 抽 象 映射 计算机逻辑的实现 抽象
311面向对象程序设计基本概念 ◆如何理解并区分“对象”? 对象的身份是什么?—对象标识(名称) 对象的状态是什么?—属性 对象的行为是什么?—方法 一方面特征 n Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 ◆ 如何理解并区分 “对象”? 对象的状态是什么?——属性 对象的身份是什么?——对象标识(名称) 对象的行为是什么?——方法 三 方 面 特 征
31.1面向对象程序设计基本概念 ◆对象之间的关系 ·包含聚合/组合](整体部分结构)——当对象A是对象B的组成[可独立存在/不可 独立存在]部分时,称对象B包含对象A 如:学生和班级,CPU与计算机 继承(一般特殊结构)——当对象A是对象B的特例时,称对象A继承了对象B; 如:北京大学和大学,液晶显示器和显示器。 关联[依赖——当对象A拥有[使用]对象B时,称对象A和对象B之间是关联关系。 如:计算机与制造商,学生和班主任 n Java面向对象程序设计 图
Java面向对象程序设计 • 包含[聚合/组合](整体-部分结构)——当对象A是对象B的组成[可独立存在/不可 独立存在]部分时,称对象B包含对象A; 如:学生和班级, CPU与计算机 • 继承(一般-特殊结构)——当对象A是对象B的特例时,称对象A继承了对象B; 如:北京大学和大学,液晶显示器和显示器。 • 关联[依赖]——当对象A拥有[使用]对象B时,称对象A和对象 B之间是关联关系。 如:计算机与制造商,学生和班主任 3.1.1 面向对象程序设计基本概念 ◆ 对象之间的关系
311面向对象程序设计基本概念 面 1面向对象的分析( Object Oriented Analysis,OOA) 向 对 分析用户需求,从问题中抽取对象模型 象 的 2面向对象的设计( Object Oriented Design,OoD) 软 件 将模型细化,设计类,包括类的属性和淡之间的相互关 开 系,同时考察是否有可以直接引用的已有类或部件 发 过3面向对象的编程实现( Object Oriented P rogramming,oop 程 选种面向对象的编程语言,具体编码实现上一阶段类 的设计,并在开发过程中引入测试,完善整个解决方案。 n nsS Java面向对象程序设计 图
Java面向对象程序设计 3.1.1 面向对象程序设计基本概念 面 向 对 象 的 软 件 开 发 过 程 3 面向对象的编程实现(Object Oriented Programming,OOP) 1 面向对象的分析(Object Oriented Analysis,OOA) 2 面向对象的设计(Object Oriented Design,OOD) 选一种面向对象的编程语言,具体编码实现上一阶段类 的设计,并在开发过程中引入测试,完善整个解决方案。 分析用户需求,从问题中抽取对象模型。 将模型细化,设计类,包括类的属性和类之间的相互关 系,同时考察是否有可以直接引用的已有类或部件