`
kino
  • 浏览: 104903 次
  • 性别: 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 命令备忘”这一文档中,记录了一系列关键的AS400命令,涵盖了系统状态查看、用户管理、设备监控、消息处理以及文件操作等多个方面,为AS400的使用者提供了实用的操作指南。 ### 1. 系统状态与用户管理 -...

    02 as备忘录程序+源码+APK+数据库+移动终端期末大作业项目试验+备忘录大作业2024+JIE图

    该备忘录程序是一款简洁实用的应用,旨在帮助用户高效记录和管理日常事务。用户可以轻松创建、编辑和删除备忘录,支持设置提醒功能,以确保不会错过重要事项。应用界面直观,操作流畅,用户可以通过标签和分类功能对...

    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 ...

    flash actionscript3 as3 DesignPattern面向对象23种设计模式的实现源代码.zip

    AS3中,可以使用Director类协调Builder类的构建过程。 5. **原型模式**:用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。AS3支持浅复制和深复制,可以利用clone()方法实现。 6. **适配器模式**...

    as3.0设计模式代码实现汇总

    18. **备忘录模式**(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可恢复对象的这个状态,如Memento.as。 19. **解释器模式**(Interpreter):给定一种...

    python使用tkinter实现简单有界面的备忘录

    import tkinter as tk from tkinter import messagebox root = tk.Tk() root.title("简易备忘录") ``` 接下来,我们可以设计窗口的布局。使用`tk.Frame`创建框架,用于放置不同的组件,如文本输入框、按钮等。例如...

    ASVS-Agile-Delivery-Guide

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

    PADS非常用操作备忘

    3. 电路模块的拷贝与管理: - 使用Copy to file命令可以将常用电路模块保存为*.grp文件,建立自己的模块库,便于后续设计时通过Paste from file快速调用。 4. Copy as bitmap功能: - 这一功能可将原理图的电路...

    综合Python备忘单.zip

    3. **函数** - 定义函数:使用`def`关键字,参数传递可以是位置参数、关键字参数或默认参数。 * lambda表达式:创建匿名函数,如`lambda x, y: x + y`。 * 递归:函数调用自身,解决分治问题。 - 匿名函数与高阶...

    Delphi7使用备忘

    ### Delphi7使用备忘知识点总结 #### 一、安装QuickReport组件与Socket组件 **知识点1:安装QuickReport组件** - **步骤说明**: - 打开Delphi7 IDE。 - 选择菜单栏中的`Component` -> `Install Packages`。 - ...

    MySQL两页纸备忘单

    = 3 GROUP BY species HAVING AVG(age) > 3 ORDER BY AVG(age) DESC; ``` - **多表查询**: - 若要查询多个表的信息,可以使用`JOIN`操作,例如: ```sql SELECT city.name, country.name FROM city INNER JOIN...

    数据库Sqlite的备忘录

    CREATE VIEW StudentView AS SELECT Name, Age FROM Students; ``` 索引可以提高查询速度,通常在经常用于搜索的列上创建。创建索引: ```sql CREATE INDEX idx_Student_Age ON Students (Age); ``` 9. ...

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

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

    Flex中的小技巧备忘

    ### Flex中的小技巧备忘 在Flex开发过程中,掌握一些实用的小技巧可以帮助开发者更高效地完成项目,并提高代码质量。本文将详细介绍四种与Flex相关的实用技巧。 #### 技巧一:复制文本到剪贴板 在某些场景下,...

    TrueTime安装备忘.pdf

    ### TrueTime安装备忘知识点详解 #### 一、TrueTime简介 TrueTime是一款由瑞典隆德大学自动控制系的研究人员Martin Ohlin、Dan Henriksson和Anton Cervin开发的网络化控制仿真工具箱。这款工具箱是基于MATLAB/...

    Ajax学习 网址备忘录.txt

    ### Ajax学习网址备忘录知识点概述 #### 一、什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换来实现...

    (FLEX)Advanced ActionScript 3 with Design Patterns - 2006 (Adobe)

    - **flex AS3 design Patterns** 这些标签进一步明确了本书关注的三个主要方面:Flex技术、ActionScript 3语言以及设计模式的应用。它们为读者提供了关键词索引,便于快速定位到自己感兴趣的内容。 #### 内容概述 ...

    Sketch 2 快捷键中英文备忘.docx

    * Use as Mask Span: 作为蒙版使用 (Control + Cmd + M) * Union: 合并形状 (Alt + + U) * Subtract: 减去顶层形状 (Alt + + S) * Intersect: 与形状区域相交 (Alt + + I) * Difference: 减去重叠形状 (Alt + + XE) ...

Global site tag (gtag.js) - Google Analytics