关于类、私有属性与继承的理解

所属分类: 网页制作 / Flash 阅读数: 1340
收藏 0 赞 0 分享
1、首先,定义一个基本的类,定义类的方法用"Class"命令。
//创建一个基本的类时,应注意类的定义必须在外部的类脚本文件中(新建-AS文件),文件的扩展名为“as”;另外,一个重点就是要有“三个统一”:类名、类脚本文件名跟类中构造器名要一致。
方法:文件-新建-ActionScript文件,保存,文件名取为"中国人.as“。然后在里面加入如下代码:

复制代码 代码如下:

//此处的名称,应与文件名一致。前面有讲过。 
class 中国人 { 
  //设置了一个“皮肤颜色”属性,它的值为字符串类型,默认值为“黄色” 
  public var 皮肤颜色:String = "黄色"; 
  //设置了一个“头发颜色”属性,它的值为字符串类型,默认值为“黑色” 
  public var 头发颜色:String = "黑色"; 
  //设置了一个方法函数,函数名为“娶老婆”,返回类型为字符串型。 
  public function 娶老婆():String { 
    return ("抬花轿,喝啤酒,闹洞房"); 
  } 


2、使用一个类,使用类之前,必须先将此类导入。一般用import ***;完成。
方法:新建一个FLASH文件,保存在刚才建立的相同目录。然后在里面加入如下代码:
复制代码 代码如下:

//此句是个人习惯,可以不加,后同。。。 
/*https://www.jb51.net 脚本之家*/ 

/* 
备注:自Flash MX之后,Flash正式支持Unicode编码,所以我们可以直接以中文名作为变量名。 
*/ 
//引入“中国人”类,注意:引入名必须和类名以及类文件名一致,也请注意,凡是导入类的时候,类的后面是没有()的。 
import 中国人; 
//建立一个“中国人”类的实例:刘某 
var HBRO:中国人 = new 中国人(); 
//输出对象实例“刘某”的“发色”属性 
trace("HBRO的头发颜色为:"+HBRO.头发颜色); 
//输出对象实例“刘某”的“肤色”属性 
trace("HBRO的皮肤颜色为:"+HBRO.皮肤颜色); 
//输出对象实例“刘某”的方法“过新年”所返回的值,注意trace后面如果跟方法,则在方法的()后面不能加上";"号。 
trace("HBRO娶老婆:"+HBRO.娶老婆()); 
/*https://www.jb51.net 脚本之家*/
这样,一个简单类的创立与应用就成功了。
3、私有属性的使用。在此,我们与继承同步进行。现在我们新建一个"重庆人.as"类,然后里面加入如下代码:
复制代码 代码如下:

class 重庆人 extends 中国人 { 
  public var 个性:String = "喜欢吃辣椒"; 
  private var 特征:String; 
  public function 外表():String { 
    this.特征 = "英俊潇洒、风流倜傥、迷倒万千少女"; 
    return (this.特征); 
  } 

注意第三行,用的是private。一般说来,用到私有属性的时候,一定有必要用一个公共函数对私有属性进行连接。注意,继承用的是exstends。
Class A extends B 表示的意思是,A继承于B,就好比某个大型企业老板寿终正寝后,他的家业就得由他的儿子来继承.在这里的意思,是A继承B的属性.比如这位老板姓黄,他的儿子也得跟着姓黄一个道理.
下面,我们先来看继承的应用。在第二步中建立的文件中替换为如下代码:
复制代码 代码如下:

/*https://www.jb51.net 脚本之家*/ 
/* 
备注:自Flash MX之后,Flash正式支持Unicode编码,所以我们可以直接以中文名作为变量名。 
*/ 
//引入“中国人”类,注意:引入名必须和类名以及类文件名一致,也请注意,凡是导入类的时候,类的后面是没有()的。 
import 中国人; 
//建立一个“中国人”类的实例:刘某 
var HBRO:中国人 = new 中国人(); 
//输出对象实例“刘某”的“发色”属性 
trace("HBRO的头发颜色为:"+HBRO.头发颜色); 
//输出对象实例“刘某”的“肤色”属性 
trace("HBRO的皮肤颜色为:"+HBRO.皮肤颜色); 
//输出对象实例“刘某”的方法“过新年”所返回的值,注意trace后面如果跟方法,则在方法的()后面不能加上";"号。 
trace("HBRO娶老婆:"+HBRO.娶老婆()); 
//定义一个名叫沙子的重庆人类 
var 沙子:重庆人 = new 重庆人(); 
//输出沙子的个性 
trace("沙子的个性:"+沙子.个性); 
//为了测试重庆人类是否已经成功继承于父类“中国人”,测试一下沙子的肤色 
trace("沙子的皮肤颜色:"+沙子.皮肤颜色); 
trace("沙子的外表:"+沙子.外表()); 
/*https://www.jb51.net 脚本之家*/ 

注意区分里面的不同之处。。。。。。
新添加的部分如下:
复制代码 代码如下:


//定义一个名叫沙子的重庆人类 
var 沙子:重庆人 = new 重庆人(); 
//输出沙子的个性 
trace("沙子的个性:"+沙子.个性); 
//为了测试重庆人类是否已经成功继承于父类“中国人”,测试一下沙子的肤色 
trace("沙子的皮肤颜色:"+沙子.皮肤颜色); 
trace("沙子的外表:"+沙子.外表()); 
按CTRL+ENTER键,即可以看到效果.

以上源码下载地址:
http://img.jb51.net/downtools/classandexstends.rar
更多精彩内容其他人还在看

Flex程序开发心得小结

和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。
收藏 0 赞 0 分享

关于FLASH与XML交互应用中的理解

关于XML在FLASH中的应用,以前写过几篇。也收集了几篇来自网络的。不过,都是一些非常简单而常用的。在这里,我把XML的其他相关说明总结一下。有不足之处,希望大家能相互补充。只为了一个共同的目的:共同提高。
收藏 0 赞 0 分享

Flash Event写法

flash下event事件驱动方法
收藏 0 赞 0 分享

AS3自写类整理笔记 ClassLoader类第1/2页

在用flash做项目的时候,把一些元件,通过设置链接类,然后使用这个类,通过getClass方法即可把这个素材拿下来
收藏 0 赞 0 分享

AS3自写类整理笔记:ByteLoader类

该类的主要功能是把swf,jpg,png,gif等文件以字节的形式加载进来 以便于使用Loader.loadBytes方法,重复加载使用素材 如果图片格式为jpg,并且是渐进式格式jpeg,那么该类还可以帮助你边加载边显示
收藏 0 赞 0 分享

AS3自写类整理笔记 Dot类第1/2页

拖拽物体1和物体2,就可以看到效果了 index.base.geom.Dot类讲解 基本功能:记录xy两点
收藏 0 赞 0 分享

AS3 中的package(包)应用实例代码

初学者在学习AS3时会遇到什么样的问题呢?只有从初学的角度来实践,才能知道,package 这个高手们必玩的内容,对初学者来说或许就有一些困惑。
收藏 0 赞 0 分享

swfupload使用代码说明

终于在天哪joyous的帮助下,花了一天的时间,搞明白大部分内容. swfupload(以下简称su)遇到的主要问题就是,版本不同造成的极大差异, 现在的版本已经到2.1beta。我用的是2.02版,天哪用的是1.xx版。
收藏 0 赞 0 分享

Flex中最好的MVC框架Mate框架

个人感觉Mate框架非常适合开发一般运用程序,可以提高开发效率,节约成本,同时也比较好维护。但如果要做游戏或是其它控制更强的程序并不适合。
收藏 0 赞 0 分享

Flex 创建复数行文本内容的List

效果不错的flex多行文本
收藏 0 赞 0 分享
查看更多