ActionScript 30从入门到精通第6章 面向对象编程基础.ppt
《ActionScript 30从入门到精通第6章 面向对象编程基础.ppt》由会员分享,可在线阅读,更多相关《ActionScript 30从入门到精通第6章 面向对象编程基础.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6章章 面向对象编程基础面向对象编程基础面向对象(面向对象(OOP,Object Oriented Programming)是目前比)是目前比较流行的开发技术,它的提出主要是为了解决传统程序设较流行的开发技术,它的提出主要是为了解决传统程序设计中所面临的代码重用问题。面向对象的基本特征是使用计中所面临的代码重用问题。面向对象的基本特征是使用类(类(Class)和对象()和对象(Object)来组织代码,将属性、方法)来组织代码,将属性、方法和事件与对象捆绑在一起。和事件与对象捆绑在一起。ActionScript 3.0也是一门面向也是一门面向对向(对向(OOP)的编程语言。)的编程语言
2、。传统的结构化程序设计关注于程序的功能模块,系统是实惠传统的结构化程序设计关注于程序的功能模块,系统是实惠模块功能的函数和过程的集合。由于用户的需求和软硬件模块功能的函数和过程的集合。由于用户的需求和软硬件的不断发展变化,由此开发出来的代码也必然不稳定,可的不断发展变化,由此开发出来的代码也必然不稳定,可重用性不高。重用性不高。第第6 6章章 面向对象编程基础面向对象编程基础面向对象的程序设计一切从数据本身出发,以数据为中心来面向对象的程序设计一切从数据本身出发,以数据为中心来描述系统。它将各个程序视为数据的集合,因此具有更强描述系统。它将各个程序视为数据的集合,因此具有更强的稳定性。的稳定性
3、。面向对象程序设计和结构化的程序设计之间的本质区别便在面向对象程序设计和结构化的程序设计之间的本质区别便在于,面向对象专注于数据对向,而结构化程序设计则更关于,面向对象专注于数据对向,而结构化程序设计则更关心功能。心功能。6.1 6.1 面向对象与类面向对象与类面向对象程序设计是一种以对象来描述问题问题空间的实例,面向对象程序设计是一种以对象来描述问题问题空间的实例,并按照对象间的关系组织模型的设计方法。一般来说,我并按照对象间的关系组织模型的设计方法。一般来说,我们所说的对象(们所说的对象(Object)可以认为是对具体事物的抽象,)可以认为是对具体事物的抽象,它反映了我们在编写程序时所关注
4、的信息和与之交互时的它反映了我们在编写程序时所关注的信息和与之交互时的操作。可以认为对象是一些属性和对这些属性进行操作的操作。可以认为对象是一些属性和对这些属性进行操作的方法的集合体,这些属性和方法是封装在对象中的。因此方法的集合体,这些属性和方法是封装在对象中的。因此可以把对象简单地理解为可以把对象简单地理解为“数据数据+对数据的操作对数据的操作”。6.1 6.1 面向对象与类面向对象与类类(类(Class)是通过对某些对象的抽象第二次提炼而成的集合)是通过对某些对象的抽象第二次提炼而成的集合体。在第一次由真实问题到对象的提炼中,问题已经抽象体。在第一次由真实问题到对象的提炼中,问题已经抽象
5、化为数据形式;在第二次由对象到类的提炼中,这些数据化为数据形式;在第二次由对象到类的提炼中,这些数据总结出相同的功能,和相同的数据格式,形成集合,这便总结出相同的功能,和相同的数据格式,形成集合,这便是类。在类这个范畴中,它不关心具体的操作实现细节,是类。在类这个范畴中,它不关心具体的操作实现细节,而将涉及的数据归纳为数据类型而将涉及的数据归纳为数据类型。对象抽象为类,类实例化为对象,描述了对象与实例之间由对象抽象为类,类实例化为对象,描述了对象与实例之间由具体到抽象,由抽象到具体的过程。这也可以看为是两个具体到抽象,由抽象到具体的过程。这也可以看为是两个相反的过程。相反的过程。6.1.1 6
6、.1.1 面向对象基础面向对象基础面向对象(面向对象(OOP)起源于上个世纪六十年代,历史源起也是)起源于上个世纪六十年代,历史源起也是非常早的。不过直到九十年代才成为应用软件开发的主流。非常早的。不过直到九十年代才成为应用软件开发的主流。面向对象的思想体系如下。面向对象的思想体系如下。(1)面向对象设计()面向对象设计(OOD,Object Oriented Design)。)。(2)面向对象编程()面向对象编程(OOP,Object Oriented Programming)。)。(3)面向对象分析()面向对象分析(OOA,Object Oriented Analysis)。)。面向过程编
7、程与面向对象编程的代码风格有比较明显的区别。面向过程编程与面向对象编程的代码风格有比较明显的区别。6.1.1 6.1.1 面向对象基础面向对象基础面向对象编程有面向对象编程有3个重要的特性,分别是封装、继承和多态。个重要的特性,分别是封装、继承和多态。下面将会详细进行解释。下面将会详细进行解释。以下总结以下总结OOP的优点如下。的优点如下。(1)代码整洁,便于重用。)代码整洁,便于重用。(2)扩展性强,代码弹性和适应性优秀。)扩展性强,代码弹性和适应性优秀。(3)大量优秀设计模式,可重复利用。)大量优秀设计模式,可重复利用。(4)便于团队协作分工。)便于团队协作分工。(5)便于二次开发。)便于
8、二次开发。6.1.2 6.1.2 类的封装类的封装从从ActionScript 2.0开始,面向对象的编程思想已经开始应用开始,面向对象的编程思想已经开始应用于开发。不过由于于开发。不过由于ActionScript 2.0自身的限制,很多语法自身的限制,很多语法结构还不够规范,直到结构还不够规范,直到ActionScript 3.0的时候,的时候,OOP的的方法才被广泛应用于方法才被广泛应用于AcitonScript的开发领域,的开发领域,“对象对象”的概念成为整个的概念成为整个ActionScript 3.0编程的基本概念。编程的基本概念。面向对象编程的重要特性之一是封装。基本数据和对数据的
9、面向对象编程的重要特性之一是封装。基本数据和对数据的操作方法(即类的属性和方法)融合在一起的形式,称为操作方法(即类的属性和方法)融合在一起的形式,称为对数据的对数据的“封闭封闭”。封闭的结果形成了一个类(。封闭的结果形成了一个类(Class)。)。6.1.2 6.1.2 类的封装类的封装定义类时,除使用关键字定义类时,除使用关键字class外,可以配合以下几种属性对外,可以配合以下几种属性对其定义,如下表所示。其定义,如下表所示。6.2 6.2 继承(继承(InheritanceInheritance)面向对象编程的另一重要特性是继承。继承是类与类之间的面向对象编程的另一重要特性是继承。继承
10、是类与类之间的一种关系,当一个类一种关系,当一个类A继承了另一个类继承了另一个类B时,即表示时,即表示A可可以使用以使用B的所有属性和方法。但是继承关系并不仅限于类的所有属性和方法。但是继承关系并不仅限于类的复制,它还允许继承者可以有自己的特性。就象一个孩的复制,它还允许继承者可以有自己的特性。就象一个孩子可以继承母亲的眼睛、父亲的嘴巴特征,但又不会与父子可以继承母亲的眼睛、父亲的嘴巴特征,但又不会与父母完全相象。继承关系与我们举例的母完全相象。继承关系与我们举例的“遗传遗传”关系相似,关系相似,在类于类之间架起了一道道桥梁。它即可以使代码特征从在类于类之间架起了一道道桥梁。它即可以使代码特征
11、从一个类传递到另一个类,又可以使类与类之间保持独有的一个类传递到另一个类,又可以使类与类之间保持独有的特质。特质。6.2.1 继承继承ActionScript中使用中使用extens关键字来表示继承关系。当类关键字来表示继承关系。当类A继继承类承类B时可以写为如下格式。时可以写为如下格式。注意:注意:public这个关键词用于标注类的属性,它指明类(也这个关键词用于标注类的属性,它指明类(也包括变量、常量、方法等)可以被任何调用者使用。默认包括变量、常量、方法等)可以被任何调用者使用。默认情况下(即不使用关键字标注属性时),类的属性是内部情况下(即不使用关键字标注属性时),类的属性是内部(in
12、ternal),仅限于在当前包内可见。当标注为),仅限于在当前包内可见。当标注为public时,时,类就成为类就成为“外部可见外部可见”。6.2.2 6.2.2 静态属性静态属性当类在继承时,如果不分情况,全盘搬过去,有时候是无法当类在继承时,如果不分情况,全盘搬过去,有时候是无法满足要求的。因此在定义类的属性和方法时,往往也会使满足要求的。因此在定义类的属性和方法时,往往也会使用用statice关键字来定义一些静态怕属性和方法。所谓关键字来定义一些静态怕属性和方法。所谓“静静态态”,即是说这些属性和方法是无法被子类继承和使用的。,即是说这些属性和方法是无法被子类继承和使用的。还是使用类还是使
13、用类A继承类继承类B的例子,当类的例子,当类B在定义变量在定义变量n时使用时使用static关键字时,类关键字时,类A将无法继承这个属性,我们说变量将无法继承这个属性,我们说变量n是一个静态变量。是一个静态变量。6.2.3 6.2.3 覆盖覆盖在类在类A继承类继承类B的过程中,有的时候还会遇到一种情况。的过程中,有的时候还会遇到一种情况。A确确实需要实需要B的方法,但是又需要对这个方法进行修饰。比如的方法,但是又需要对这个方法进行修饰。比如一个类中的方法一个类中的方法sayHi是使用英语问好,说是使用英语问好,说“Hello”。当。当我们继承这个类,使用法语问好时,就面临着这样一个问我们继承这
14、个类,使用法语问好时,就面临着这样一个问题:方法还是题:方法还是sayHi,但内容却变了,改为,但内容却变了,改为“Bonjour”了。了。此时需要使用关键字此时需要使用关键字override来覆盖掉原来的方法。来覆盖掉原来的方法。当当B类中定义了类中定义了sayHi方法时,可以写为如下形式。方法时,可以写为如下形式。6.2.4 6.2.4 构造函数与继承构造函数与继承在第二章中我们曾经接触过构造函数的基本概念。一般来说在第二章中我们曾经接触过构造函数的基本概念。一般来说构造函数会调用一些初始化的方法,并为必要的变量赋值。构造函数会调用一些初始化的方法,并为必要的变量赋值。在继承的过程中,子类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ActionScript 30从入门到精通第6章 面向对象编程基础 30 入门 精通 面向 对象 编程 基础
限制150内