AS3中基本数据类型概述:
和其他面向对象一样,AS3中的数据类型也分为基本数据类型和复杂数据类型。这两种不仅仅是概念上的区分,在使用上也有很的区分。
1:基本数据类型:
我们在编程时频繁使用到的复杂数据类型。例如:数字,真假,文字。有些编程经验的人都知道,这是语言的基本构成单元。AS3中预定义的基本元素类型共有:Boolean ,number,int,String,unit:
其中int,number,uint是处理整型的。int一般情况是用来定义整型的。number使用来出来很长又有小数的数字。unit处理很大的正整数。其他的跟java语言的用法一样
2:复杂的数据类型:
简单的复杂的数据类型是相对于基本数据类型而言的。简单的复杂数据类型就是由很多的简单的基本数据类型构成的:例如:Array.高级的复杂数据类型。其组成元素也是复杂的数据类型。比如:OBJECT对象他包含3个Array.经常用到的复杂的数据类型有:Array,Data,
Error,Function,RegExp和XMLList.例外我们自己定义的类也全部属于复杂数据类型
2:变量的声明和使用:
初学者往往以为变量就是数据,实际上并不是这样的。变量好比是一个遥控器,指向我们要操作的数据。对变量进行操作,变量指向的数据也会发生变换:
变量必须先声明在使用,不然编译器会报错。就好比一个没有名字的遥控器我们对他怎么进行操作呢?
3:声明变量的语法:
var 变量名:数据类型;
var 变量名:数据类型=值:
这点跟JAVA语言不一样:java语言必须试数据类型而言才能进行定义变量:例如:定义整型变量:
int 变量名=值;但是在AS3中这种弱类型的情况下我们用VAR进行声明变量的操作:
*4:变量的本质
之前说过,在AS3中,所有数据类型都是对象;我们通过变量来操作对象。变量与对象是怎么联系?变量持有引用。而引用则指向要操作的对象。因此。实际上我们是通过引用来操作对象。这句话很抽象:打个比喻吧:引用好比是一个遥控器,变量是遥控器的名字。引用可以直接遥控到要操作在内存中的对象》
5:值类型和引用类型:
AS3中变量只有引用,指向要操作的对象。和JAVA中不同。AS3中变量本身是不能持有值的。在AS3中,值类型变量只有的是最想类型数据的引用:引用类型的变量持有的是想引用类型数据的引用。不要忘记,不论是值类型换是引用类型。是实质都是对象。值类型就是前面所说的基本数据类型。引用类型就是前面说的复杂数据类型。所不同的是。值类型是一种不变的对象。
6:基本数据类型的讨论:
在java中值类型并不是以对象的形式存在的。值类型变量,存储的不是引用,而是直接容纳了具体的值。在AS3中则不一样。因为本质上,值类型仍然是对象。那么即使是值类型,存储的仍然是引用。而不是直接持有值。但是值类型是一种特殊的对象==不变对象。正是这种对象的特殊行为导致了我们对值类型跟引用类型的操作不同。
举个简单的例子:
var aname:int=1;
aname=aname+2;
第一行创建了一个int类型的不便对象A出来,它的值是1,并赋给了变量。aname,第二行加上了一个整型值2,改变了aname的值。但是,不变对象A并没有改变。实际上发生的事儿是:第二行的结果是导致了一个新的整形值不变对象B的创建。B的值为3,然后不便对象B的引用被赋给了aname。换句话说,此时aname只有的引用不在是指向不变对象A,而是指向新的创建的不变对象B,此时AVM会回收不便对象A。
和其他面向对象一样,AS3中的数据类型也分为基本数据类型和复杂数据类型。这两种不仅仅是概念上的区分,在使用上也有很的区分。
1:基本数据类型:
我们在编程时频繁使用到的复杂数据类型。例如:数字,真假,文字。有些编程经验的人都知道,这是语言的基本构成单元。AS3中预定义的基本元素类型共有:Boolean ,number,int,String,unit:
其中int,number,uint是处理整型的。int一般情况是用来定义整型的。number使用来出来很长又有小数的数字。unit处理很大的正整数。其他的跟java语言的用法一样
2:复杂的数据类型:
简单的复杂的数据类型是相对于基本数据类型而言的。简单的复杂数据类型就是由很多的简单的基本数据类型构成的:例如:Array.高级的复杂数据类型。其组成元素也是复杂的数据类型。比如:OBJECT对象他包含3个Array.经常用到的复杂的数据类型有:Array,Data,
Error,Function,RegExp和XMLList.例外我们自己定义的类也全部属于复杂数据类型
2:变量的声明和使用:
初学者往往以为变量就是数据,实际上并不是这样的。变量好比是一个遥控器,指向我们要操作的数据。对变量进行操作,变量指向的数据也会发生变换:
变量必须先声明在使用,不然编译器会报错。就好比一个没有名字的遥控器我们对他怎么进行操作呢?
3:声明变量的语法:
var 变量名:数据类型;
var 变量名:数据类型=值:
这点跟JAVA语言不一样:java语言必须试数据类型而言才能进行定义变量:例如:定义整型变量:
int 变量名=值;但是在AS3中这种弱类型的情况下我们用VAR进行声明变量的操作:
*4:变量的本质
之前说过,在AS3中,所有数据类型都是对象;我们通过变量来操作对象。变量与对象是怎么联系?变量持有引用。而引用则指向要操作的对象。因此。实际上我们是通过引用来操作对象。这句话很抽象:打个比喻吧:引用好比是一个遥控器,变量是遥控器的名字。引用可以直接遥控到要操作在内存中的对象》
5:值类型和引用类型:
AS3中变量只有引用,指向要操作的对象。和JAVA中不同。AS3中变量本身是不能持有值的。在AS3中,值类型变量只有的是最想类型数据的引用:引用类型的变量持有的是想引用类型数据的引用。不要忘记,不论是值类型换是引用类型。是实质都是对象。值类型就是前面所说的基本数据类型。引用类型就是前面说的复杂数据类型。所不同的是。值类型是一种不变的对象。
6:基本数据类型的讨论:
在java中值类型并不是以对象的形式存在的。值类型变量,存储的不是引用,而是直接容纳了具体的值。在AS3中则不一样。因为本质上,值类型仍然是对象。那么即使是值类型,存储的仍然是引用。而不是直接持有值。但是值类型是一种特殊的对象==不变对象。正是这种对象的特殊行为导致了我们对值类型跟引用类型的操作不同。
举个简单的例子:
var aname:int=1;
aname=aname+2;
第一行创建了一个int类型的不便对象A出来,它的值是1,并赋给了变量。aname,第二行加上了一个整型值2,改变了aname的值。但是,不变对象A并没有改变。实际上发生的事儿是:第二行的结果是导致了一个新的整形值不变对象B的创建。B的值为3,然后不便对象B的引用被赋给了aname。换句话说,此时aname只有的引用不在是指向不变对象A,而是指向新的创建的不变对象B,此时AVM会回收不便对象A。