`
kino
  • 浏览: 102861 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

as3备忘十-类

    博客分类:
  • flex
阅读更多

在这里写一下备忘的原则,我认为在as3中融合了java和javascript的特性,而我记录的备忘点多数是和它们不同的地方。

 

1、可用于修饰类定义的四个属性 ,默认是internal:

  • dynamic                允许在运行时向实例添加属性。
  • final                      不得由其它类扩展。
  • internal (默认)    对当前包内的引用可见。
  • public                     对所有位置的引用可见。

2、在as3中没有抽象类,所以定义类时并没有abstract关键字。

 

3、类中可以定义常量,变量,方法,还可以定义命名空间:

public class SampleClass
{
    public namespace sampleNamespace;
    sampleNamespace function doSomething():void;
}

 

4、在as3中允许定义同名的静态属性和实例属性。

 

class StaticTest
{
    static var message:String = "static variable";
    var message:String = "instance variable";
}
// 在脚本中
var myST:StaticTest = new StaticTest();
trace(StaticTest.message); // 输出:静态变量
trace(myST.message); // 输出:实例变量

 

5、可用于类成员定义的属性有:

  • internal (默认)     对同一包中的引用可见。
  • private                   对同一类中的引用可见。
  • protected               对同一类及派生类中的引用可见。
  • public                     对所有位置的引用可见。
  • static                     指定某一属性属于该类,而不属于该类的实例。
  • UserDefinedNamespace              用户定义的自定义命名空间名。


6、使用 dynamic 属性声明的类中尝试访问私有变量时,不会导致运行时错误。只是变量不可见。但如果用.点运算符访问时,会在严格模式下出编译错误,用属性访问符[]就不会。


7、类的构造函数方法只能是公共方法,但可以选择性地使用 public 属性。不能对构造函数使用任何其它访问控制说明符(包括使用 private、protected 或 internal)。也不能对函数构造方法使用用户定义的命名空间。


8、在as中有一个叫做set和get存取器的东西,其实它实现的功能类似于java中的bean,实现了对私有变量的存取,但在as3中的实现有所不同。

class GetSet
{
private var privateProperty:String;
public function get publicAccess():String
{
    return privateProperty;
}
public function set publicAccess(setValue:String):void
{
    privateProperty = setValue;
}
}
 

如果尝试直接访问属性 privateProperty,将会发生错误,如下所示:

var myGetSet:GetSet = new GetSet();
trace(myGetSet.privateProperty); // 发生错误

但可以使用名为 publicAccess 的公共存取器设置 privateProperty 的值:

var myGetSet:GetSet = new GetSet();
trace(myGetSet.publicAccess); // 输出:null
myGetSet.publicAccess = "hello";
trace(myGetSet.publicAccess); // 输出:hello

 9、类的方法中this关键字始终引用该方法所属的实例,这一点和javascript中有所不同,因为as3实现了自动绑定。但函数和javascript中还是一样。

class ThisTest
{
    private var num:Number = 3;
    function foo():void // 定义的绑定方法
    {
        trace("foo's this: " + this);
        trace("num: " + num);
    }
    function bar():Function
    {
        return foo; // 返回的绑定方法
    }
}

var myTest:ThisTest = new ThisTest();
var myFunc:Function = myTest.bar();
trace(this); // 输出:[ 全局对象]
myFunc();
/* 输出:
foo's this: [object ThisTest]
output: num: 3 */
 

 

10、在as3中接口只能包含方法但不能包含方法体。接口不能包含变量或常量,这些都和java一样,但是可以包含 getter 和 setter

 

11、类在实现接口时,实现的方法的参数数和每个参数的数据类型必须与接口方法的参数数和数据类型相匹配,但参数名不需要匹配

 

12、实现具有默认值参数的接口方法时必须采用默认参数值 ,默认参数值是与接口定义中指定的值具有相同数据类型的一个成员,但是实际值不一定匹配

//接口
interface IGamma
{
    function doSomething(param:int = 3):void;
}

//实现类
class Gamma implements IGamma
{
    public function doSomething(param:int = 4):void {}//默认值和接口中不一样
}

 13、在父类中使用 var 或 const 关键字声明的属性,继承的子类是不能对其进行覆盖的。覆盖某一属性就表示在子类中重新定义该属性。唯一可覆盖的属性类型是方法,即使用 function 关键字声明的属性。虽然不能覆盖实例变量,但是通过为实例变量创建 getter 和 setter 方法并覆盖这些方法

 

14、静态方法不能继承,也不能覆盖。但是,实例方法可由子类继承(final、private的除外),也可覆盖

 

15、子类访问父类的静态属性是不需要类名限定符的:

class Base {
    public static var test:String = "static";
}

class Extender extends Base
{
    public function Extender()
    {
        trace(test); // 输出:静态
    }
}

 

本方地址:http://kino.iteye.com/blog/239598 ,转载请注明,谢谢!

2
0
分享到:
评论
1 楼 kjj 2012-07-15  
java 接口中可以声明常量,as3 则不能!!!

相关推荐

    AS400 命令备忘

    AS400 命令备忘.txt AS400 命令备忘

    math-as-code, 在代码形式中,数学符号的备忘单.zip

    math-as-code, 在代码形式中,数学符号的备忘单 math-as-code中文翻译( 中文版)这是一个参考,通过显示与JavaScript代码的比较来简化开发人员的数学符号。动机:学术论文对于自学游戏和图形编程者来说可能是。 : )本...

    qubes-cheatsheet:Qubes OS备忘单-结合一些示例包含DomU和Dom0的命令

    Qubes OS备忘单该备忘单包含命令和示例。资料下载(文字): PDF: HTML: 文字: 这些文件是在generate.sh的帮助下其他格式PDF和HTML文件是使用生成的。 Pandoc可以从一个文本文件生成不同的文件。 # outputs the ...

    最新CMA+CNAS二合一程序文件-文件控制和维护程序.doc

    4.1.2 外部文件:与检测有关的法律、法规、规章、标准、检测方法、制造商的说明、图纸、 软件、指导书、教科书、备忘录、上级文件等。办公自动化、实验室信息管理系统使用 手册。 以上文件可能是硬拷贝、电子媒体及...

    ASVS-Agile-Delivery-Guide

    尽管在其他OWASP项目(例如SAMM,SKF和OWASP备忘单)的支持下,在开发标准本身方面进行了大量的工作,但我们仍然认为,关于如何集成交付标准的指南和开源文档仍然远远缺这些都转化为敏捷的交付方式。 因此,我们...

    flash AS3读取外部JSON数据并给文本框赋值

    初次用到flash读取JSON,经过几天的研究,总算告一段落。现总结备忘,也供朋友们参考。 详文见: http://www.cnblogs.com/guo2001china/archive/2012/06/01/2530441.html

    反向壳备忘单::upside-down_face:反向壳备忘单:upside-down_face:

    反向壳备忘单::upside-down_face:反向壳备忘单:upside-down_face:

    备忘录文档_202308291043.docx

    备忘录文档_202308291043.docx

    use-next-intl-format:超轻量级和零依赖的React Hook,可为Next.js i18n创建备忘录化的Intl本机实例

    使用下一个intl格式和零依赖的React Hook,可为Next.js i18n创建备忘录化的Intl本机实例安装该模块包括打字稿打字。 npm install --save use-next-intl-formatyarn add use-next-intl-format支持的国际帮助者 —通过...

    javascript设计模式 – 备忘录模式原理与用法实例分析

    本文实例讲述了javascript设计模式 – 备忘录模式原理与用法。分享给大家供大家参考,具体如下: 介绍:在我们的开发中偶尔会遇到这样一种情况,需要对用户的行为进行撤销。要想实现撤销,首先需要保存软件系统的...

    magit-cheatsheet:magit的便捷备忘单,git的出色emacs模式

    如果您想与org-mode的org-export-as-html及其奇怪的一组准控件进行搏斗,以更新备忘单,则为主org-mode主文件。 导出当前版本的组织模式文件HTML输出,因此您可以进行比较和对比。 实用程序.el文件。 为了使org-...

    RFC1771_边界网关协议版本4(BGP-4) .doc

    本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化程度和状态。本备忘录的发布不受...

    ActionScript3 设计模式+ 源码

    第3章 模型/视图/控制器模式 第4章 单件模式 第5章 工厂方法和模板方法模式 第6章 代理模式 第7章 迭代器模式 第8章 组合模式 第9章 装饰器模式 第10章 命令模式 第11章 备忘录模式 第12章 状态模式 第...

    最大公共字符串leetcode-DataStructures-and-Algorithms-Cheatsheets:数据结构和算法备忘单

    最大公共字符串leetcode Java中常用数据结构和方法的编译 树木 理解O(log n)和二叉树的基本递归算法: BFS DEQUEUE 使用 层序遍历 ...as size of queue Create a new arraylist if(root.left is not

    dasheets:为 Dash 生成备忘单

    数据表 生成您自己的备忘单作为文档集! 使用这个简单的命令行工具并用简单的语言 (Ruby DSL) 编写备忘单。 安装 $ gem install dasheets 用法 ... id 'windows' # must be unique and is used as

    读Mask R-CNN源码备忘录(训练部分)

    此文为读Mask RCNN源码过程中的随笔,很“流水账”,我想价值在于对照着源码把每个步骤的“输入”、“输出”张量的维度标注了一下,会有助...input_image_meta (batch_size, 1 + 3 + 3 + 4 + 1 + config.NUM_CLASSES)

    RFC2328中文版-[经典]

    本备忘录说明了OSPF协议版本2。OSPF是一种连接状态/link-state路由协议,被设计用于单一的自制系统/Autonomous System中。每个OSPF路由器都维持着同样的数据库以描述AS的拓扑结构,并以此数据库来创建最短路径树并...

    python中import学习备忘笔记

    前言 在python的模块有两种组织方式,一种是单纯的python文件,文件名就是模块名,一种是包...2、从模块import对象(下级模块,类,函数,变量等) from Module import Name from Module immport Name as yy as语法

    sm-liquidator-3000:安全月清盘人机器人

    您将需要api_key,secret_key和备忘录。 如何安装 - Install python3 - Go to command line, install dotenv with `pip3 install dotenv` for linux and mac users,`python -m pip install dotenv` for windows ...

    asp.net伪静态配置备忘

    总之,感觉网站的URL上面有参数是一件很别扭的事情,一方面很容易被注入,另... http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi 然后就是新建一个网站,然

Global site tag (gtag.js) - Google Analytics