Java的面向对象更新

上传人:xy****7 文档编号:47079666 上传时间:2018-06-29 格式:PDF 页数:103 大小:582.09KB
返回 下载 相关 举报
Java的面向对象更新_第1页
第1页 / 共103页
Java的面向对象更新_第2页
第2页 / 共103页
Java的面向对象更新_第3页
第3页 / 共103页
Java的面向对象更新_第4页
第4页 / 共103页
Java的面向对象更新_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《Java的面向对象更新》由会员分享,可在线阅读,更多相关《Java的面向对象更新(103页珍藏版)》请在金锄头文库上搜索。

1、 信息与通信工程学院 1 Java的面向对象 信息与通信工程学院 胡 铮 2 主要内容主要内容 面向对象的基本概念 类的定义 类和对象的使用 包package 成员变量及方法的访问权限 final、this及其它 3 面向面向过程过程 编程编程 Fortran、Basic,C等面向过程的程序设计语言,按等面向过程的程序设计语言,按 流程化的思想来组织的。的思想来组织的。 通常将存放基本数据类型的变量作为程序处理对象通常将存放基本数据类型的变量作为程序处理对象 、以变量的赋值作为程序的基本操作、以变量值的、以变量的赋值作为程序的基本操作、以变量值的 改变作为程序运行的状态。改变作为程序运行的状

2、态。 存在存在数据抽象简单、信息完全暴露、算法复杂、无 法很好地描述客观世界等缺点。 为了实现有限度的代码重用,公共代码被组织成为为了实现有限度的代码重用,公共代码被组织成为 过程或函数。当需要代码重用时,调用已经组织好过程或函数。当需要代码重用时,调用已经组织好 的过程或函数。的过程或函数。 如果软件项目庞大,程序的调试和维护将变得异常 困难。 4 面向过程编程思想(结构化设计)的不足面向过程编程思想(结构化设计)的不足 不太适应规模大及特别复杂的项目; 难于适应需求变化或模糊的问题; 难于解决软件重用(复用)问题; 软件维护依然比较复杂; 数据和对数据的处理原本是密切相关的,把数据和操作

3、人为地分离成两个独立的部分,自然会增加软件开发与 维护的难度 5 面向对象方法面向对象方法 面向对象是一种新兴的程序设计方法面向对象是一种新兴的程序设计方法,或者是一种或者是一种 新的程序设计规范新的程序设计规范,它使用它使用对象、类、继承、封装 、消息等基本概念来进行程序的设计。 指导思想:尽可能模拟人类习惯的思维方式,使开 发软件的方法与过程尽可能接近人类认识世界的方 法与过程,从而使描述问题的问题空间(问题域) 与实现解法的解空间(求解域)在结构上尽可能一 致。 方法论:系统是由一些对象的相互联系、相互作用 而形成。 面向对象分析(OOA)、面向对象设计(OOD) 和面向对象编程(OOP

4、) 6 面向对象方法面向对象方法 实体抽象为问题域中的对象(object)。 对象是由数据及可以施加在这些数据上的操作所构成的对象是由数据及可以施加在这些数据上的操作所构成的 统一体统一体 对象是不固定的,如何抽象为对象,由所要解决的问题 决定 软件开发者自己定义或选取解空间对象,然后把软件系 统作为一系列离散的解空间对象的集合 面向对象方法是一种新的思维方法,它是把程序看 作是相互协作而又彼此独立的对象的集合 而不是看作是工作在数据上的一系列过程或函数的集合 7 OO方法的方程概括方法的方程概括 OO=objects+classes+inheritance+communication wit

5、h messages 面向对象面向对象就是既使用对象使用对象又使用类和继承使用类和继承等机制, 而且对象之间仅能通过传递消息实现彼此通信仅能通过传递消息实现彼此通信。 8 OO方法的要点方法的要点 客观世界是由各种对象组成的,任何事物都是对象,复杂 的对象可以由比较简单的对象以某种方式组合而成。 面向对象方法用对象分解取代了传统方法的功能分解。 把所有对象都划分成各种对象类(简称为类,class) 定义一组数据用于表示对象的静态属性,是对象的状态信息 定义一组方法,是允许施加于该类对象上的操作,是该类所有对象 共享的 9 OO方法的要点方法的要点 按照子类(或称为派生类)与父类(或称为基类)的

6、关系,把若 干个对象类组成一个层次结构的系统(也称为类等级)。 下层的派生类具有和上层的基类相同的特性(包括数据和方法),这 种现象称为继承(inheritance)。 对象彼此之间仅能通过传递消息互相联系。对象是进行处 理的主体,必须发消息请求它执行它的某个操作,处理它 的私有数据 一切局部于该对象的私有信息,都被封装在该对象类的定义中,在 外界是看不见的,更不能直接使用,这就是“封装性”。 10 面向对象方法的主要概念面向对象方法的主要概念 对象 其它概念 11 对象对象 在应用领域中有意义的有意义的、与所要解决的问题有关系与所要解决的问题有关系 的任何事物的任何事物都可以作为对象 既可以

7、是具体的物理实体的抽象 也可以是人为的概念,或者是任何有明确边界和意义的 东西。 如何抽象对象,跟问题有关 12 对象的形象表示对象的形象表示 具有3个操作的对象。 13 对象的定义对象的定义 对象是封装了数据结构及可以施加在这些数据结构对象是封装了数据结构及可以施加在这些数据结构 上的操作的封装体上的操作的封装体 惟一标识名字 向外界提供一组服务(即公有的操作) 数据表示对象的状态 一个对象的状态只能由该对象的操作来改变 每当需要改变对象的状态时,只能由其他对象向该对象 发送消息 对象响应消息时,按照消息模式找出与之匹配的方法, 并执行该方法。 14 从动态角度或对象的实现机制来看,对象是一

8、台自动机。 具有内部状态S,操作fi(i=1,2,n),且与操作fi对应的状态 转换函数为gi(i=1,2,n)的一个对象。 15 对象的特点对象的特点 以数据为中心 对象是主动的 实现数据封装 本质上具有并行性 模块独立性好 16 其它概念其它概念 1.类(class) 2.实例(instance) 3.消息(message) 4.方法(method) 5.属性(attribute) 17 (1) 类(类(class) 习惯于把有相似特征的事物归为一类。 “类”就是对具有相同数据和相同操作的一组相 似对象的定义 类是对具有相同属性和行为的一个或多个对象的描述。 类是支持继承的抽象数据类型,而

9、对象就是类的实 例。 18 (2) 实例实例(instance) 实例实例是由某个特定的类所描述的一个具体的对象。 实例实例是以某个特定的类为“样板”而建立的一个具 体的对象。 当使用“对象”这个术语时,既可以指一个具体的 对象,也可以泛指一般的对象,但是,当使用“实 例”这个术语时,必然是指一个具体的对象。 19 (3) 消息消息(message) 消息就是要求某个对象执行在定义它的那个类中所 定义的某个操作的规格说明。通常,一个消息由下 述3部分组成: 接收消息的对象; 消息选择符(也称为消息名); 零个或多个变元。 myCycle.show(GREEN) 20 (4) 方法方法(meth

10、od) 方法就是对象所能执行的操作,也就是类中所定义 的服务。方法描述了对象执行操作的算法,响应消 息的方法。 21 (5) 属性属性(attribute) 属性就是类中所定义的数据,它是对客观世界实体 所具有的性质的抽象。类的每个实例都有自己特有 的属性值。 22 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 1)封装)封装 封装就是把对象的属性和和对这些属性的操作打封装就是把对象的属性和和对这些属性的操作打 包在一个单独的数据结构中,尽可能隐蔽对象的内包在一个单独的数据结构中,尽可能隐蔽对象的内 部细节,包含两个含义:部细节,包含两个含义: 把对象的全部属性和对

11、属性的全部操作结合在一起,把对象的全部属性和对属性的全部操作结合在一起, 形成一个不可分割的独立单元(即对象)。形成一个不可分割的独立单元(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成 一个边界一个边界或者说形成一道屏障或者说形成一道屏障,只保留有限的对,只保留有限的对 外接口使之与外部发生联系。外接口使之与外部发生联系。 23 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 2)继承)继承 能够直接获得已有的性质和特征,而不必重复能够直接获得已有的性质和特征,而不必重复 定义它们。定义它们。 根据创建的拥有

12、共有属性的一般类,创建具有根据创建的拥有共有属性的一般类,创建具有 特殊属性的新类。新类继承一般类的状态和行为特殊属性的新类。新类继承一般类的状态和行为,并并 根据需要增加它自己的新的状态和行为根据需要增加它自己的新的状态和行为 由继承而得到的类称为子类由继承而得到的类称为子类,被继承的类称为父被继承的类称为父 类或超类。类或超类。 Java不支持多重继承,子类只能有一个父类。不支持多重继承,子类只能有一个父类。 24 继承继承(inheritance) 25 面向对象的三大特点:面向对象的三大特点:封装、继承、多态封装、继承、多态 3)多态)多态 polymorphism 主要体现在两个方面

13、:方法重载时实现的静态主要体现在两个方面:方法重载时实现的静态 多态和方法重载时实现的动态多态。多态和方法重载时实现的动态多态。 多态性使得同一方法,可以有多种形式。 在类等级的不同层次中可以共享在类等级的不同层次中可以共享(公用公用)一个行一个行 为为(方法方法)的名字,不同层次中的每个类却各自按自的名字,不同层次中的每个类却各自按自 己的需要来实现这个行为。己的需要来实现这个行为。 当对象接收到发送给它的消息时,根据该对象当对象接收到发送给它的消息时,根据该对象 所属于的类动态选用在该类中定义的实现算法。所属于的类动态选用在该类中定义的实现算法。 26 (9) 重载重载(overloadi

14、ng) 函数重载函数重载是指在同一作用域内的若干个参数特征不 同的函数可以使用相同的函数名字; 当参数特征不同或被操作数的类型不同时,实现函 数的算法或运算符的语义是不相同的。 27 主要内容主要内容 面向对象的基本概念 类的定义 类和对象的使用 包package 成员变量及方法的访问权限 final、this及其它 28 类的定义类的定义 1. 类声明 2. 类体 3. 实例化对象 4. 构造方法说明 5. 对象的清除 6. 方法重载 29 (1)类声明类声明 类的类的声明声明举例:举例: class Circle point center; / 属性或成员 float radius; /

15、属性或成员 double getArea() / 方法 return radius*radius*3.1415926; 30 (1)类声明类声明 类声明的格式类声明的格式 修饰符修饰符 class 类名类名 extends 超类名超类名 implements接口名列表接口名列表 可能的选项可能的选项 publicabstract|final class 类名类名 extends 超类名超类名 implements 接口名列表接口名列表 public(公共):修饰的类能被所有的类访问。 abstract(抽象):修饰的类不能被实例化,包含有未实现的方法。 final(最终):修饰的类不能被继承(不能有子类) 注意: abstract和final不能同时作为一个类的修饰符。 31 (1)类声明类声明 extends(继承继承): extends保留字表明新创建的类继承哪个类。extends后面 只能跟一个父类名。 implements(实现实现): 表明这个类实现了哪些接口,接口名可以有多个。 class MyC1ass /空类,没有任何用处,但是合法 Rectangle类继承了Shapes父类,实现了接口Display,是一个 公共类。 public class Rectangle extends Shapes implement Display

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号