------- android培訓、java培訓、期待與您交流! ----------
abstract關鍵字
修飾抽象類別,則該類不能再被final 修飾
修飾方法時,該方法只有定義,沒有實現,不能再被static、private、final修飾
介面:定義介面的關鍵字interface.
對於介面當中常見的成員:而且這些成員都有固定的修飾符。 (可以省略)
1,全域常量: public static final
2,抽象方法。public abstract
介面:
1、可以多實現,一個類可以有多個介面,
2、如果其中有介面都定義了同樣的方法,這被實現的方法可以為這幾個介面使用。
3、介面可以多繼承,因為介面只有方法定義,沒有方法體。不會造成不確定性。
4、介面中的成員都是公用的. 只有常量和方法的定義,沒有變數和方法的實現。
抽象類別和介面的異同點:
相同點:都是不斷向上抽取而來的。
不同點:
1,抽象類別需要被繼承,而且只能單繼承。
介面需要被實現,而且可以多實現。
2,抽象類別中可以定義抽象方法和非抽象方法,子類繼承後,可以直接使用非抽象方法。
介面中只能定義抽象方法,必須由子類去實現。
3,抽象類別的繼承是is a關係,在定義該體系的基本共性內容。
介面的實現是like a關係,在定義體系額外功能。
模板方法設計模式:(提高擴充性和複用性)
在定義功能時,當一部分功能確定,而一部分功能不確定,並且確定的部分在使用不確定的部分時,
可以將不確定的部分暴露出去,由子類來實現。不一定是抽象的。
單例設計模式:保證類在記憶體中的對象的唯一性。
實現方法:私人化建構函式,在內部建立對象,提供介面供外界引用
餓漢式:類載入時建立對象。具體工作中一般用餓漢式,比較安全。
懶漢式:方法被調用時建立對象,消極式載入方式。或者用多線程方式,將返回對象函數加一層判斷,定義為synchronized,但是比較低效。
內部類訪問規則:
1、內部類可直接存取外部類中成員,包括私人的,而不需建立對象。
內部類能直接存取外部類中成員,是因為內部類持有了外部類的引用,
即 Outer.this.成員名。
2、外部類不能訪問內部類中的成員,需要先建立內部類對象。
3、內部類在外部類成員位置上,可以用private修飾。
4、當內部類中有靜態成員,該內部類必須聲明為靜態。當外部類中靜態方法訪問內部類時,內部類也要是靜態。
內部類訪問格式:
1、當內部類定義在外部類成員位置上時,而且非私人,可以再外部其他類中,直接建立內部類對象。
格式: Outer.Inner para = new Outer().new Inner()
2、當內部類在成員位置上,可以被修飾符修飾,比如private將內部類在外部類中封裝。
3、靜態內部類具備靜態特性,只能訪問外部類中靜態成員。
外部其他類訪問靜態內部類非靜態成員:new Outer.Inner().function() //function為非靜態成員
外部其他類訪問靜態內部類中的靜態成員:Outer.Inner.function() //function 為靜態成員
當描述事物時,發現事物內部還有事物,該內部事物用內部類來描述,因為內部事物在使用外部事物的內容。
局部內部類:
局部內部類不能定義靜態成員。
不能有存取權限修飾符,不是成員;
可以直接存取外部類成員;
不可以訪問所在局部中的局部變數,只能訪問被final修飾的局部變數。
匿名內部類:必須繼承一個類或者實現一個介面。
格式:nwe Base/Interface1() {定義子類內容}.成員;
其實匿名內部類就是一個匿名子類對象
------- android培訓、java培訓、期待與您交流! ----------