flash学习笔记(七)--创建自定义类和进行面向对象的编程

第十七章 创建自定义类和进行面向对象的编程

  1. 新建as文档,就是类(和java差不多)

package{

         public class HelloWorld{

                  public function myPrint():String{

                            return "Hello World!";

                  }

         }

}

在flash中import HelloWorld

注意:FLA文件被编译为SWF文件

  1. 对于面向对象的理解:

按定义来说很简单:抽象、继承、封装、多态

车:抽象出类   car

继承:车是一个广义的概念,自行车也是车     bicycle继承car

封装:车和自行车都有属性,放在一个类中就是封装,调用方便

 

那么,为什么面向对象比面向过程好呢?

1、 如果你的程序特别小,只有几百行代码,没有必要面向对象;面向对象是针对大量重复调用公共函数(类)的方法。

2、 当你的项目特别大时,面向对象中的类的重复调用的好处就体现出来了。

3、 面向对象的维护也比面向过程容易。

4、 当理解了面向对象后,就要了解设计模式、框架之类的东西了。

注:有句话很赞同,面向过程注重功能实现,面向对象注重提供API

  1. 使用as3.0定义类或者接口的脚本必须存储为外部脚本文件.as,并且在每个脚本中定义一个公共类。
  2. 对于as文档:

1>     类必须用class声明,可以public才能够调用

2>     Class中定义属性或者函数

3>     类必须使用包作为容器,package

4>     注意:构造函数,在类中public HelloWorld():void{}//空的

  1. 方法的重载:

Flash不支持冲在overLoad:变相实现

Pulic function myMethod(…args):void{

  If(args.length == 2){

    If(args[0] is int)

}

}

  1. 多个类可以放在同一个包中。
  2. 成员访问控制:

Internal:对统一包中的引用可见

Private:对同一个类中的引用可见

Protected:对同一类以及派生类中的引用可见

  1. 扩建内建ActionScript类:可以调用loadSound()方法

Class JukeBox extends  sound{

  Var songList:Array = new  Array(“1.mp3”,”2.mp3”,”3.mp3”);

  Function playSong(songID:Number){}

}

  1. 接口的继承:

Interface IA extends interface  IB{}

  1. Super调用派生类的构造函数
  2. 重写方法和属性:

Classs Named_Cart extends Cart{

  Public  function  Named_Cart():void{ }

  Override public function doSomething():void{

    //

  }

}

注意:未被final声明;private不可见;数据类型、参数数量都一样

注意区别方法重载和方法覆盖的区别。

  1. 区别实例成员和类成员:

实例成员:也就是声明的实例调用的属性和方法;

类成员:就是直接通过类调用的静态成员。Public static var varialbeName;

  1. 创建动态类:

Public dynamic class Person{

  Public var name:String;

  Public var age:Number;

}

Var a_person:Person = new Person();

A_Person.hairColor = “Blue”;//由于是动态类,不会出错

  1. 接口和抽象类的区别:

抽象类:可以实现部分方法

接口:可以继承多个接口;方法不能有限制关键字

  1. 隐式获取/设置属性:

Var user:String;

Function get username():String{

  Return user;

}

Function set username(name:String):void{

  User = name;

}

使用:

Var name = obj.userName;

Obj.username = “Jack”;

 

 

 

posted @ 2012-03-27 15:35  tinytiny  阅读(397)  评论(0编辑  收藏  举报