众所周知,Flex也是一种面向对象的语言。因此我们很必要弄清面向对象的基本理论。
对象:
既然是面向对象,我们要知道什么是对象。对象是在现实世界中就是指具体的各种实体,比如电视机,电脑,书,汽车等等,这些都是我们所指的对象。每种对象都会有特定的角色和功能,并且有它各自的特征(如颜色,大小等)。而对象之间有些具有依赖关系(如电脑与CPU),有些则什么关系都没有。这些对象的关系都体现我们面向对象的理论中。
对象是一种自包含的部件。它知道自己能实现什么的功能和有哪些属性。
对象体现自身能力的两种形式是:属性和方法(函数)
属性和方法也有各自的作用域,如(私有,公有,受保护等),作用域控制这些方法和属性可以被谁来使用。
类:则是将一组类似的对象抽象一个模板,形成所谓的类。比如轿车,卡车,公交车根据他们的共性,可以抽象成一个类,汽车类。这个类中可以定义一些它们共有的属性和方法。比如颜色,车牌等。而我们在程序中不能直接使用类,因为它只是一个模板,没有具体的意义。在使用前,我们必须要将类实例化成对象(在程序中即是实例化一般通过new构造函数实现),在实例化好类后,我们就可以使用类中的方法和属性了。
接口:在我们调用类时,我们为了将类中上的方法和属性实现代码进行封装,外部调用时,我们不必提供实现的代码,只需告诉外部,这个类实现了什么功能,有什么属性就行。于是我们就有了接口出现,接口里面只有函数声明,没有函数实现。同时我们对于我们一些同样的操作,我们也可以进行封装,比如汽车有开车,倒车,停车这几个操作,火车也有开车,倒车,停车这个操作。那么我们就可以提取这个几个接口写成一个接口类。这个接口类可由不同的类(如汽车类,火车类)实现。同时一个类也会实现好几个接口,如汽车可以实现(开车,倒车,停车),同时也可以实现(加油,加水)这一个接口。
关于面向对象的其它理论
继承:从一个对象中(父类)继承另一个对象的(子类)的属性和方法
例如轿车,卡车,公交车都可以继承汽车这个类(一般情况,我们会把最上面的基类,设计成接口类)。
重写(多态):对于继承下来的类,我们还可以重写父类的函数,保持函数名不变,更改函数体,实现自己想要的功能。
封装:封装的关键在于重用代码,同时外部也不必了解对象的过程。外部与对象的通信则是通过参数的传递即函数的参数来实现。