《面向对象基础精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象基础精选文档.ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向面向对象基象基础本讲稿第一页,共十六页8.1 8.1 类和对象类和对象客观世界中每一个实体都是对象。在客观世界中每一个实体都是对象。在ActionScript 3.0中中对象的类型称为类(对象的类型称为类(class)。类代表了某一对象的共性和特)。类代表了某一对象的共性和特征。可以说类是对象的抽象,而对象是类的具体实例。在征。可以说类是对象的抽象,而对象是类的具体实例。在ActionScript 3.0中先声明一个类,然后用类去定义若干个同中先声明一个类,然后用类去定义若干个同类型的对象。用户可将类看成是一种数据类型,对象是这种类型的对象。用户可将类看成是一种数据类型,对象是这种数据类型
2、的变量。数据类型的变量。本讲稿第二页,共十六页8.1.1 8.1.1 类的定义形式类的定义形式在在ActionScript 3.0中定义一个类就是要定义类的成员都中定义一个类就是要定义类的成员都数据和成员函数。数据和成员函数。本讲稿第三页,共十六页8.1.2 8.1.2 类的成员类型类的成员类型类的成员类型包括三大类:一类是私有(类的成员类型包括三大类:一类是私有(private),即外),即外界不能调用。一类是公有(界不能调用。一类是公有(public),即外界可以调用。一类是),即外界可以调用。一类是受保护(受保护(protected),此内容将在后面小节中介绍。),此内容将在后面小节中介
3、绍。本讲稿第四页,共十六页8.1.3 8.1.3 调用类中的成员调用类中的成员类中的成员只有指明类型为类中的成员只有指明类型为public后,外界才能调用。后,外界才能调用。外界可以调用类中的公有成员数据和公有成员函数。在调用外界可以调用类中的公有成员数据和公有成员函数。在调用类的成员之前需要实例化类,即创建类的对象。因为类中成类的成员之前需要实例化类,即创建类的对象。因为类中成员只有在创建类的对象时,才会在内存中分配空间。员只有在创建类的对象时,才会在内存中分配空间。本讲稿第五页,共十六页8.2 8.2 构造函数和析构函数构造函数和析构函数类定义中一般都有两个基本的成员函数:构造函数和析类定
4、义中一般都有两个基本的成员函数:构造函数和析构函数。构造函数一般用于在类对象创建时初始化成员数据。构函数。构造函数一般用于在类对象创建时初始化成员数据。析构函数一般用于在类对象清除时释放成员所占的内存空间。析构函数一般用于在类对象清除时释放成员所占的内存空间。在在ActionScript 3.0的类定义中构造函数和析构函数都可缺省,的类定义中构造函数和析构函数都可缺省,但语言中有默认的、不可见的构造函数和析构函数。但语言中有默认的、不可见的构造函数和析构函数。在类定义中构造函数还是非常常用的,因为用户经常需在类定义中构造函数还是非常常用的,因为用户经常需要初始化成员数据,而默认的构造函数不初始
5、化任何成员数要初始化成员数据,而默认的构造函数不初始化任何成员数据。据。本讲稿第六页,共十六页8.2.1 8.2.1 构造函数构造函数构造函数用在在类对象创建时执行,一般用于成员数据构造函数用在在类对象创建时执行,一般用于成员数据的初始化。构造函数与其他成员不同,不需要用户发命令来的初始化。构造函数与其他成员不同,不需要用户发命令来激活它,在创建类的对象时自动执行。构造函数可用户自定激活它,在创建类的对象时自动执行。构造函数可用户自定义,但构造函数名称与类名必须一致,以便系统能识别其为义,但构造函数名称与类名必须一致,以便系统能识别其为构造函数。构造函数。本讲稿第七页,共十六页8.2.2 8.
6、2.2 析构函数析构函数析构函数与构造函数正好相反,当类对象清除时自动执析构函数与构造函数正好相反,当类对象清除时自动执行析构函数。析构函数往往用来做释放类对象的内存空间。行析构函数。析构函数往往用来做释放类对象的内存空间。析构函数名也与类名相同,只是在函数名前面加一个波浪符析构函数名也与类名相同,只是在函数名前面加一个波浪符“”,以区别于构造函数。,以区别于构造函数。析构函数不带任何参数,也没有返回值(包括析构函数不带任何参数,也没有返回值(包括void类型)类型)。一个类中只能有一个析构函数。如果用户没有编写析构函。一个类中只能有一个析构函数。如果用户没有编写析构函数,编译系统会自动生成一
7、个默认的析构函数,但这个析构数,编译系统会自动生成一个默认的析构函数,但这个析构函数不进行任何操作。所以许多简单的类中没有显式的析构函数不进行任何操作。所以许多简单的类中没有显式的析构函数。函数。本讲稿第八页,共十六页8.3 8.3 继承与派生继承与派生面向对象技术强调程序的可重用性。在面向对象技术强调程序的可重用性。在ActionScript 3.0中可重用性是通过继承机制来实现。继承是一种类的重用技中可重用性是通过继承机制来实现。继承是一种类的重用技术,用户创建新的类可以基于某一基础类,从而充分利用了术,用户创建新的类可以基于某一基础类,从而充分利用了已有资源。已存在的类称为基类或父类。通
8、过继承而新生成已有资源。已存在的类称为基类或父类。通过继承而新生成的类称为派生类或子类。派生类继承了基类的所有数据成员的类称为派生类或子类。派生类继承了基类的所有数据成员和成员函数,并增加了新的成员。和成员函数,并增加了新的成员。本讲稿第九页,共十六页8.3.1 8.3.1 派生类定义的一般形式派生类定义的一般形式派生类继承了基类的全部成员,使用派生类继承了基类的全部成员,使用extends关键字表关键字表示此类是某类的派生类。示此类是某类的派生类。派生类由于继承了基类,所以包括基类成员和其新增的派生类由于继承了基类,所以包括基类成员和其新增的成员。成员。本讲稿第十页,共十六页8.3.2 8.
9、3.2 派生类的保护成员派生类的保护成员protected关键字和关键字和private、public一样是用来声明成员一样是用来声明成员的引用权限的。由的引用权限的。由protected声明的成员称为保护成员。保护声明的成员称为保护成员。保护成员不能被外界引用(这点和私有成员相同),但可以被派成员不能被外界引用(这点和私有成员相同),但可以被派生类的成员函数引用。所以如果想在派生类引用基类的成员,生类的成员函数引用。所以如果想在派生类引用基类的成员,可以将基类的成员声明为可以将基类的成员声明为protected。本讲稿第十一页,共十六页8.3.3 8.3.3 派生类的构造函数派生类的构造函数
10、派生类从基类继承了非私有成员函数和数据成员,但是派生类从基类继承了非私有成员函数和数据成员,但是在建立派生类的对象时,系统只执行派生类的构造函数,而在建立派生类的对象时,系统只执行派生类的构造函数,而不会自动执行基类的构造函数。也就是说,基类的构造函数不会自动执行基类的构造函数。也就是说,基类的构造函数是不能继承的。如果基类的构造函数包含对变量的初始化,是不能继承的。如果基类的构造函数包含对变量的初始化,那么在建立派生类的对象时,由于没有执行基类的构造函那么在建立派生类的对象时,由于没有执行基类的构造函就就会使基类的变量未初始化。会使基类的变量未初始化。本讲稿第十二页,共十六页8.4 8.4
11、接口接口在大型程序设计初期开发者往往不需要思考具体的逻辑在大型程序设计初期开发者往往不需要思考具体的逻辑过程。比如做菜,先想好要买哪些原料,大致采取怎样的做过程。比如做菜,先想好要买哪些原料,大致采取怎样的做法,是煮、蒸或是炸。不用去思考味精放多少,要烧多久等法,是煮、蒸或是炸。不用去思考味精放多少,要烧多久等琐碎的事情。这样做的好处是能整体把握程序设计,避免陷琐碎的事情。这样做的好处是能整体把握程序设计,避免陷入代码实现误区。入代码实现误区。ActionScript 3.0语言提供接口的概念。接口是包含一组语言提供接口的概念。接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返
12、虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法中不包含任何实现,只定义了有哪些方法。回值。接口方法中不包含任何实现,只定义了有哪些方法。然后通过类来实现接口,一个类可以实现多个接口。然后通过类来实现接口,一个类可以实现多个接口。本讲稿第十三页,共十六页8.4.1 8.4.1 创建接口创建接口在在Flex Builder 3中创建接口的方法与创建类的方法类似。中创建接口的方法与创建类的方法类似。执行执行“File”“New”“ActionScript Interface”命令,弹命令,弹出新建接口向导。出新建接口向导。本讲稿第十四页,共十六页8.4.2 8.4.2 使用类实现
13、接口使用类实现接口接口定义了抽象的方法,但没有方法的具体实现。接口接口定义了抽象的方法,但没有方法的具体实现。接口方法的具体实现可在类中完成。方法的具体实现可在类中完成。ICommand接口中定义了接口中定义了excute抽象方法,抽象方法,GetEngCaptionCommand类实现了接口中的类实现了接口中的excute方法。方法。实现接口的类中一定要包括接口中全部方法的实现。上实现接口的类中一定要包括接口中全部方法的实现。上述述ICommand接口中只有一个接口中只有一个execute方法待实现,所以类中方法待实现,所以类中只实现了只实现了execute。若。若Command接口中有更多
14、方法,类都需接口中有更多方法,类都需要一一实现方法。要一一实现方法。用户不能调用接口中方法,而且这样做也没有意义,因用户不能调用接口中方法,而且这样做也没有意义,因为接口不提供方法的具体实现。使用类实现接口后,用户就为接口不提供方法的具体实现。使用类实现接口后,用户就可调用类中的方法来完成任务。可调用类中的方法来完成任务。本讲稿第十五页,共十六页8.5 8.5 小结小结客观世界中的每个事物都可看作是一个对象,对象间相客观世界中的每个事物都可看作是一个对象,对象间相互联系,构成复杂的一个世界。类是同类型的对象的集合,互联系,构成复杂的一个世界。类是同类型的对象的集合,也就是说类是对象的抽象,对象
15、是类的具体实例。类中包括也就是说类是对象的抽象,对象是类的具体实例。类中包括成员数据和成员函数。类成员的类型有成员数据和成员函数。类成员的类型有3种:种:public、private和和protected。只有声明为。只有声明为public的成员外界才可以访问。构的成员外界才可以访问。构造函数是指在类对象创建时自动执行的函数,一般用于初始造函数是指在类对象创建时自动执行的函数,一般用于初始化成员数据。析构函数是指在类对象消除时自动执行的函数,化成员数据。析构函数是指在类对象消除时自动执行的函数,一般用于释放内存空间。继承机制是指在原有类的基础上新一般用于释放内存空间。继承机制是指在原有类的基础上新建类,这样就能充分利用好现有资源,有利于程序的扩展和建类,这样就能充分利用好现有资源,有利于程序的扩展和重用。重用。本讲稿第十六页,共十六页