類(calss)
屬性 (屬性:可以理解為游戲中人物屬性)
成員變量(屬于類,在堆中; 隨類而存在; 可不初始化。)
局部變量(屬于方法,在棧中; 隨方法而存在; 必需初始化。)
方法 (行為:可以理解為游戲中人物技能)
構(gòu)造方法 (常用于初始化屬性、另外一種:SetXxx();): 當(dāng)類中所有方法為靜態(tài)時,需要把構(gòu)造方法私有化,以防止其他類創(chuàng)建此類的對象。
成員方法
匿名對象
- 匿名對象 : 作用,對于只用一次的對象(例如初始賦值),可節(jié)省空間(因調(diào)用完,就是垃圾,可回收)
A a = new A;
print(a); //非匿名
print(new A);//匿名對象
面向?qū)ο?/h1>
封裝(encapsulation)
- 隱藏對象屬性和實現(xiàn)細(xì)節(jié),僅有公共訪問方式。
- 好處: a. 隱藏屬性和細(xì)節(jié); b. 復(fù)用性; c. 安全性.
- 常用方式: private (限制修飾的變量或方法,只能在本類中使用)
繼承 ( inheritance )
- 關(guān)鍵字 extends
- 好處:
提高代碼復(fù)用性;
提高代碼維護性;
多態(tài)的前提,類與類的聯(lián)系。
- 壞處
耦合性增加了。
- 特點
單繼承,多層繼承。
- Note
1.子類只能繼承父類的非私有成員;
2.子類不繼承父類的構(gòu)造方法,但可以能過super關(guān)鍵字去訪問;
3.繼承應(yīng)該是包含的關(guān)系,而不是為了部分功能而繼承。
- 繼承中構(gòu)造方法的關(guān)系
子類的所有構(gòu)造方法默認(rèn)訪問父類空參數(shù)的構(gòu)造方法。
(PS: 若父類中沒有無參構(gòu)造方法,子類用super/this 解決,并且super(...) or this(...) 必須在第一行)。
- 方法重寫
1.不能降低方法權(quán)限;
2.靜態(tài)方法只能是靜態(tài)方法;
3.無法重寫私有方法(廢話,都沒繼承,怎么重寫!)。
多態(tài) ( polymorphism )
- 好處
1.提高代碼維護性 ;
2.提高代碼拓展性;
- 壞處
1.需要向下轉(zhuǎn)型才能調(diào)用子類非重寫的方法。
- 父類引用指向子類對象(向上轉(zhuǎn)型中的一種)
1.該引用只能調(diào)用父類有定義的方法或變量;
2.若子類重寫方法,該引用調(diào)用的就是子類重寫的方法;
3.向上轉(zhuǎn)型中的重寫只能針對方法;
- 向下轉(zhuǎn)型
代碼塊
- 代碼塊 : 局部代碼塊、構(gòu)造代碼塊、靜態(tài)代碼塊、同步代碼塊。
執(zhí)行順序請看構(gòu)造函數(shù) 非靜態(tài)代碼塊 構(gòu)造函數(shù)的執(zhí)行順序
提高代碼復(fù)用性;
提高代碼維護性;
多態(tài)的前提,類與類的聯(lián)系。
耦合性增加了。
單繼承,多層繼承。
1.子類只能繼承父類的非私有成員;
2.子類不繼承父類的構(gòu)造方法,但可以能過super關(guān)鍵字去訪問;
3.繼承應(yīng)該是包含的關(guān)系,而不是為了部分功能而繼承。
子類的所有構(gòu)造方法默認(rèn)訪問父類空參數(shù)的構(gòu)造方法。
(PS: 若父類中沒有無參構(gòu)造方法,子類用super/this 解決,并且super(...) or this(...) 必須在第一行)。
1.不能降低方法權(quán)限;
2.靜態(tài)方法只能是靜態(tài)方法;
3.無法重寫私有方法(廢話,都沒繼承,怎么重寫!)。
1.提高代碼維護性 ;
2.提高代碼拓展性;
1.需要向下轉(zhuǎn)型才能調(diào)用子類非重寫的方法。
1.該引用只能調(diào)用父類有定義的方法或變量;
2.若子類重寫方法,該引用調(diào)用的就是子類重寫的方法;
3.向上轉(zhuǎn)型中的重寫只能針對方法;
執(zhí)行順序請看構(gòu)造函數(shù) 非靜態(tài)代碼塊 構(gòu)造函數(shù)的執(zhí)行順序