殿堂之路 笔记

初始化符合对象的三种方式:
1、定义属性的时候初始化。缺点是不论复合的对象有没有用到,一定会被初始化,导致资源浪费。
另外,如果需要在运行的时候创建复合对象,这种方式也不行。
(比如某个复合对象是在类的某个地方才用的到的,只在用到的时候才初始化,那么这种方式就不合适。)

2、构造函数初始化。这种是在复合类对象创建时,被复合的对象才会被创建。但如果想在复合类对象构造函数被
调用之前就创建被复合的对象,要使用第一种方式。

3、在使用对象时初始化。当使用到被复合的对象时,才初始化。这种方式需要判断复合对象是否为null,在确保是否
初始化。一般在被复合的对象资源占用巨大,或者资源稀缺时,采用这种方式。对于as3来说,一般在位图应用、网络连接、
端口连接时用到。
(这里比如做那个tile的寻路标志,用这三种方式都可以,但采用第三种方式的时候,要判断是否为Null,如果为null,才new,否则浪费内存!)


1、所以非private的实例方法和属性都会被继承,任何使用父类对象的地方都可以用子类对象来代替。
2、类的静态成员不会被子类继承,但在子类中可以访问父类的静态成员。父类的静态成员存在的范围链包括父类和其所有子类。
3、如果子类的实例成员名称或静态成员名称与父类静态成员名称相同,那么父类静态成员将被屏蔽。这个时候要访问父类的静态成员,
只能用父类的类名加上静态成员名称..
4、父类的protected成员,在子类中可以访问到。不在一个Package里,也可以访问。如果没有继承,那么protected关键字的作用
和private一样。
5、重写方法必须用override标明。在as34中不可以重写属性,重写方法不可以改变参数类型和数目。
6、被关键字final定义过的实例方法不能被重写,父类的private成员不能被重写。


1、向下转换不是将父类的对象当成子类的对象。意思是:当一个子类对象以父类数据类型使用时,可以把它还原成子类对象。如果一个对象
只是父类的实例,而不是子类的实例,那么如果将它向下转换为子类对象是不能成功的。不论在编译时还是在运行时,都不可能成功。
一般在运行时使用向下转换。向下转换是一种运行时类型识别机制,在运行时,产生了很多父类类型的对象,要将它们识别为子类的对象,
并加以不同的操作,这才是转换的功能和威力所在。

2、使用as转换或使用显示强制转换。
使用as关键字时,如果发现类型不合,这个as表达式返回的就是null;使用as程序可读性好,但很有可能因为返回的是空对象而执行失败,调试麻烦。
使用显示强制转换时,如果类型不合,那么就会抛出typerror异常,使用显示强行转换,则可以使用异常处理机制来进行特殊的处理,尤其在一些大型
项目中比较喜欢这个。
需要异常处理时,使用显示强行转换。不需要的,使用is和as关键字一起类进行向下转换。


1、24位色是因为要使用8位(0或1)才能表示256个数值,8位数乘以3(红、黄、蓝)需要24位才能表示1678万种颜色值。32位颜色有额外的8位来表示
透明度。
2、24位颜色:0xffffff,6个16进制数分成三部分,第一部分代表红色,第二部分绿色,第三部分蓝色。即:0xrrggbb
每一个合成色都可以表示为0-255(16进制表示:0x00到0xff)中的值。如:0xff0000表示纯红色,0x0000ff表示纯蓝色。
32位颜色以0xAARRGGBB这样的格式来表示。其中AA表示为透明度。

3、uint(无符号整型),比整型(int)能存储更多的数值,由于色彩值永远都是正数,并且可能超出int的值域范围,所以要用uint.如0xffffffff.

原文地址:https://www.cnblogs.com/axyz/p/2152106.html