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

as3与as2区别浅谈

阅读更多

As3与As2
变量声明:声明变量的时候如果不加数据类型的话,那么as2中的
会默认类型为Object 但在as3中不是这样的,不加数据类型的话,那么
该变量就被赋值为未声明的变量类型(untyped)默认值undefined
as3中允许声明变量而不赋值,在这种情况下该变量将被赋予默认值
as3中没有long,char 类型数据  添加了uint的数据类型
在as3数组中可以创建不同类型的数据放到数组中,由于没有数据类型的
区分所有的原始初始化后默认值null;当String类型转换成Number类型时
要判断是否转换成功!(Number("123"))
as3中的is ,as ,in运算
is用来判断一个对象是否属于一种类型返回true,false表示不属于该类型
例:trace(9 is Number);//输出true
as 与is 的格式相同 但内容不同,如果一个对象属于一种类型,那么as返回
该对象否则返回null;
例:trace(1as number);//输出1:
 trace(1 as Array);//输出null;
in 关键字用来判断一个对象是否作为另一个对象的key或索引,存在返回ture
不存在返回false
例如:
var a:Array=["1","w","e"];
trece(2 in a);//数组a包含索引为2的元素 返回true;
var b:Object={ary:a,name:"ok"};
trace("ary" in b);//返回true 确实有ary的键
delete 在as3中的特殊变化
在as2中可以使用delete关键字来删除任何一个对象但在as3中delete关键字的作
用已经大大减少了,他只采用删除对象的动态实例属性,非动态属性不能删除
如果要将一个属性所持有的引用属性删除 将null赋给该该属性即可
例:
var b:Object={ary:"one",name:"ok"};
delete b.ary;//删除成功,因为ary是b的动态属性
若delete b;//删除会报错
b=null;//
trace(b);//输出null 此时b变量持有原有对象的引用已经被删除了
as3特殊的用法在条件判断这块如果一个表达式不是boolean类型的数据那么
会自动进行类型转换的
for.. 与 for each ..in 的区别很简单for  ...in 的枚举变量代表的是键
必须通过数组访问符[]来访问才能得到成员
而for each ...in 的枚举变量k则直接代表的是集合成员
switch的case 可以是string
as3中的function参数都保留在了函数自动生成一个arguments对象找中
arguments如同一个数组,按照参数的定义数序保存值传入的参数,可以是公用
arguments[0],arguments[i]访问传入的参数她还有一个length表示当前传入参数的数目
还有一个属性callee表示持有指向当前的函数的引用通常来做递归
在as2中可以无视一个函数的定义,传入的任意多的参数,但在as3中也要定义
提供一个关键字...rest只要在参数中定义了..rest那么就可以接受任意多的参数,这些参数
以数组的形式保存在rest中,rest只是推荐的命名,我们可以改成其它的参数
as3中的Class的种类:动态类,密封类
动态类 Dynamic class 和密封类 Sealed class动态类生成的实例可以在运行是动态的添加
而密封类不可以
例:
package demo
{
 public class Demo extends Sprite
 {
  public function demo()
  {
   var demo1:Demo1=new Demo1();
   var demo2:Demo2=new Demo2();
    demo2.name="asdfasdf";
    tarce(demo2.name);
   //而Demo1的实例就不能动态的创建函数或者方法
  }
 } 
}
class Demo1
{
 public var param1:String ="Demo1 param";
}
dynamic class Demo2
{
 public var param2:String="Demo2 param";
}
as2与as3中定义一个class的文件名都必须在package中,所不同的是
as2中的package中的路径直接下载class前面,而在as3中是新增关键字package
关键字来定义,class关键字后只需要定义class的名字就可以了,另外
as3中的每个.as文件中只能定义一个class但as3中可以定义多个Class
与.as文件名相同的class对外可见,其它都是包外类,是有该as文件中的
class才能访问as2中如果一个类没有加任何的访问控制符那么该类将默认为
public 而在as3中没有加任何的访问修饰符那么将默认为internal类型的.
as2中的private成员可以被子类访问到的,而as3中的private才是真正的private
as2中子类可以继承父类的静态成员的as3中是不可以的
as3中的protected不提供包内成员访问的,只有子类才能访问
as3与as2中方法重写:as3中方法重写必须使用关键字:override在前面标注,不然报错
private是不能被重写的,as2中的子类成员是要定义了同样的名字就是重写了父类的方法
而且重写的方法的参数类型和数目返回值都可以不同而在as3中不可以重写属性
重写方法不可以改变方法的参数类型和数目重写方法这块,被关键字final修饰的方法不能被重写的
父类的private的成员不能被重写的重写方法必须满足1:必须使用关键字override关键字在行首;
子类中被重写的犯法要和父类中定义的方法有同样的访问修饰符,同样的参数数目,和类型
返回值类型不能在子类重写父类的实例属性的类型super()不能在静态方法中使用
as3新增final关键字,在as3之前的版本中是没有的
as3新增关键字namespace,package并且可以自定义namespace
例:package org.domain
{
 pubilc namespace demo;
}
as3中接口不能定义常量,属性只能定义方法,定义的方法包括实例方法,静态方法
getter和setter方法接口中的方法默认都是public类型的
Array浅谈
push(元素1....);在数组尾部添加一个新的元素
unshitf(元素1....);//在数组头部添加一个或多个元素返回新增后数组的长度
删除数组元素pop shift;
pot();将数组最后一个元素删除
shift();将数组的第一个元素删除返回被删除的元素
数组中插入或者删除元素 splice
1.splice(删除点的索引,要删除的元素的数目,新元素1,......新元素1,);//删除的元素的索引可以是
负数,表示倒数多少个
2.splice(删除点索引,要删除的元素数目);//表示删除数组中某几个位置之后 的元素
3.splice(删除点索引);//删除数组中某位置之后的所有元素
4..splice(删除点的索引,0,新元素1,......新元素1,);//在数组中某位置之后,新增元素
//以上的方法返回值都是一个数组包含了删除的那些元素
splice();方法是改变了数组中的内容若不想改变数组中的内容建议使用slice();
slice(起点索引,终点索引);//获取数组中的部分元素
关于深复制和浅复制?
当数组中的元素全部都是基本数据类型是即全部都是值类型是没有浅复制和深复制的
概念的若当属组元素全部是复杂数据类型时,即引用类型时,那么复制就有两种选择
一种是浅复制,一种是深复制生成的数组浅复制很简单,调用原数组的slice();方法或者
concat();方法不传任何参数例如:var copy:Array=myArray.concat();
var copy:Array=myArray.slice();
深复制:例如:
var obj:Object={name:"demo1",text:"test2"};
var array:Array={1,2,3};
var foo:Array=["element1","element2","element3"];
var fooBA:ByteArray=new ByteArray();
fooBA.writeObject(foo);
fooBA.position=0;
var bar:Array=fooBA.readObject() as Array;
数组排序:reverse,sort , sortOn
reverse();数组倒序返回排序后的新数组
sort();//默认排序
sort(排序方式);//排序方式:
1.Array.CASEINSENSITIVE // 表示大小写不敏感按字母排序,如果数字从小到大
2.Array.DESCENDING// 表示按照字母倒序
3.Array.UNIQUESORT//安装必须唯一的属性排序。如果比较值相同则放弃排序
4.Array.RETURNINDEXEDARRAY//让sort()和sortOn();函数返回值返回排序后的索引列表,同时保持原数组不变
5.Array.NUMERIC or 16 强制按照sort()和sortOn();中对数组的采用从小到大的排序,否则不设置方式,sort();和sortOn();将把数字当成
字母来排序

 

分享到:
评论

相关推荐

    浅谈as-path及基于as-path的路由过滤.docx

    浅谈as-path及基于as-path的路由过滤 一、AS路径(AS-PATH)概述 AS路径(AS-PATH)是BGP(Border Gateway Protocol)路由协议中的一种路径属性,它记录了一条BGP路由从源AS到目的AS所经过的路径,由一系列AS号码...

    浅谈numpy中函数resize与reshape,ravel与flatten的区别

    这两组函数中区别很是类似,都是一个不改变之前的数组,一个改变数组本身 resize和reshape >>> import numpy as np >>> a = np.arange(20).reshape(4,5) >>> a array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, ...

    浅谈numpy中np.array()与np.asarray的区别以及.tolist

    array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。 1.输入为列表时 a=[[1,2,3],[4,5,6],[7,8,9]] b=np.array(a) c=...

    浅谈python中np.array的shape( ,)与( ,1)的区别

    >>> import numpy as np >>> x = np.array([1, 2]) >>> y = np.array([[1],[2]]) >>> z = np.array([[1,2]]) >>> print(x.shape) (2,) >>> print(y.shape) (2, 1) >>> print(z.shape) (1, 2) x[1,2]的shape值(2,),...

    浅谈大数据与云计算.pdf

    大数据与云计算是当今信息技术领域内两个非常重要的概念,它们虽然在概念上有区别,但在实际应用中却密切相关,常常被相提并论。大数据主要关注的是海量数据的高效处理和分析,而云计算则侧重于提供灵活的计算资源和...

    浅谈PHP中数组的应用.pdf

    "浅谈PHP中数组的应用.pdf" PHP 作为一个主流的编程语言,在实际开发中数组是一个非常重要的数据结构。数组在 PHP 中的应用非常广泛,包括考勤系统、题库系统等。 PHP 数组的特点是采用 key=>value 的存储结构,...

    浅谈python 中的 type(), dtype(), astype()的区别

    `type()`, `dtype()` 和 `astype()` 是三个与数据类型相关的函数,它们在处理Python对象和Numpy数组时起着关键作用。让我们深入探讨这三个函数的具体含义和用法。 首先,`type()` 函数是Python内置的函数,它用于...

    精彩编程与编程技巧-屏蔽文本框默认的右键菜单——浅谈如何控制Windows消息...

    ### 屏蔽文本框默认的右键菜单——浅谈如何控制Windows消息 #### 知识点一:理解Windows消息机制 在Windows操作系统中,应用程序之间的通信主要通过消息传递来进行。这些消息可以是用户输入(例如键盘按键、鼠标...

    浅谈VFP中的SQL SELECT语句 (1).pdf

    浅谈VFP中的SQL SELECT语句 本文主要介绍了VFP中的SQL SELECT语句的使用和实现方法。SELECT语句是SQL语言中最基本和最重要的一种语句,用于从数据库中查询数据。VFP中的SELECT语句可以实现简单查询、排序和分组查询...

    多种语言混合编程的探讨_浅谈VC与VB的混合编程

    标题《多种语言混合编程的探讨_浅谈VC与VB的混合编程》以及描述“从VB与VC混合编程的问题,做了一些探索,并采用动态链接库的方法举例说明了如何利用VB与VC进行混合编程”提及的知识点非常丰富,将围绕以下几个方面...

    浅谈云计算的概念问题

    ### 浅谈云计算的概念问题 #### 一、引言 近年来,随着信息技术的快速发展,云计算作为新一代信息技术的重要组成部分,已经成为全球范围内关注的焦点。它不仅仅是一种技术革新,更是一种商业模式的转变,为用户...

    浅谈分页思路

    ### 分页技术在JavaWeb与JSTL中的应用 分页是现代Web应用程序中不可或缺的功能之一,它能够有效地处理大量数据的展示问题,避免了一次性加载过多数据导致的性能瓶颈,同时也提升了用户体验。在JavaWeb开发中,结合...

    浅谈dataframe中更改列属性的方法

    在读取文件时将整数变量读成了字符串, 或者需要转换列属性时,通过方法astype Python中 举例: dataframe.numbers=dataframe.numbers.astype(float) province.id=province.id.astype(str) R中 举例: data<-...

    vb学习浅谈(经验)

    ### VB学习浅谈——数据库连接经验分享 #### 一、引言 对于初学者来说,掌握Visual Basic (VB) 的数据库连接技术是非常重要的一步。本文将重点介绍在使用VB进行数据库编程时的一些基本技巧和常见问题解决方案。...

    浅谈ASP.net安全编程

    ### 浅谈ASP.net安全编程 #### 概述 在当今互联网时代,网络安全问题日益凸显,对于开发人员来说,确保应用程序的安全性变得至关重要。本文主要探讨了ASP.net框架下的安全编程实践,尤其聚焦于如何通过.NET框架...

    浅谈分段函数在Matlab下图像画法.zip

    通过阅读“浅谈分段函数在Matlab下图像画法.pdf”文档,你可以深入学习如何在具体实践中应用这些步骤,包括可能遇到的问题和解决策略。这个文档应该包含了详细的示例和代码解释,有助于你熟练掌握在Matlab中绘制分段...

    浅谈建筑电气设备自动化系统的安装技术要求.rar

    本文将基于提供的“浅谈建筑电气设备自动化系统的安装技术要求”这一主题,深入探讨安装BEAS时所应遵循的技术规范和要点。 首先,系统设计阶段是BEAS安装的基础。在设计之初,需充分考虑建筑物的功能需求、结构特点...

Global site tag (gtag.js) - Google Analytics