Java

1、構造器

無參構造器(默認構造器)

帶參構造器

****************************************************************************************************************

一、Java 多態的實現

靠的是父類或接口定義的引用變量可以指向子類或具體實現類的實例對象,而程序調用的方法在運行期才動態綁定,就是引用變量所指向的具體實例對象的方法,也就是內存里正在運行的那個對象的方法,而不是引用變量的類型中定義的方法。

繼承、extends

重載、overload;表示同一個類中可以有多個名稱相同的方法,但這些方法的參數列表各不相同(即參數個數或類型不同)。如 類的構造方法。

       overload是指根據不同的參數樣式(類型或者個數)來區分名稱相同的方法,與返回類型無關。

       1、在使用重載時,只能通過不同參數樣式實現:不同的參數類型、不同的參數個數、不同的參數數序(前提是同個方法內的幾個參數類型不一樣);

       2、不能通過訪問權限、返回類型、拋出的異常進行重載;

       3、方法的異常類型和數目不會對重載造成影響;

       4、對於繼承來說,如果某一方法在父類中訪問權限是private的,那麼就不能在子類中進行重載,如果定義的話,也只是定義一個新的方法。

       5、構造器Constructor不能被繼承,因此不能重寫Override,但可以被重載Overload

覆蓋:override,重寫;表示子類中的方法可以與父類中的某個方法的名稱和參數完全相同,通過子類創建的實例對象調用這個方法時,將調用子類中          的定義方法。相當於將父類的方法覆蓋了。子類覆蓋父類的方法,只能比父類拋出更少的異常,或者是拋出父類拋出的異常的子異常。子類方            法的訪問權限只能比父類的更大,不能更小。如果父類方法是private類型,那麼,子類不存在覆蓋的限制,相當於子類中增加了一個全新的方          法。

        1、覆蓋的方法的標識必須要和被覆蓋的方法的標誌完全匹配;

        2、覆蓋的方法的返回值必須要和被覆蓋的方法的返回值一致;

        3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;

    4、被覆蓋的方法不能爲private,否則在其子類中只是新定義了一個方法,並沒有對其進行覆蓋。

二、接口與繼承

 

三、接口與抽象類

抽象類與普通類的唯一區別就是不能創建實例對象和允許有abstract方法;

接口可以繼承接口。抽象類可以實現(implements)接口,抽象類可以繼承具體類。抽象類中可以有靜態的main方法。

含有abstract修飾符的class即爲抽象類,abstract類不能創建的實例對象。含有abstract方法的類必須定義爲abstract class,abstract class類中的方法不必是抽象的。abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義爲abstract類型。

接口(interface)可以說成是抽象類的一種特例,接口中的所有方法都必須是抽象的。接口中的方法定義默認爲public abstract類型,接口中的成員變量類型默認爲public static final。

1.抽象類可以有構造方法,接口中不能有構造方法。

2.抽象類中可以有普通成員變量,接口中沒有普通成員變量
3.抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。

4. 抽象類中的抽象方法的訪問類型可以是public,protected和(默認類型,雖然 eclipse下不報錯,但應該也不行),但接口中的抽象方法只能是public類型的,並且默認即爲public abstract類型。

5. 抽象類中可以包含靜態方法,接口中不能包含靜態方法

6. 抽象類和接口中都可以包含靜態成員變量,抽象類中的靜態成員變量的訪問類型可以任意,但接口中定義的變量只能是public static final類型,並且默認即爲public static final類型。

7. 一個類可以實現多個接口,但只能繼承一個抽象類。

四、面向對象的特徵:

1、封裝

封裝是保證軟件部件具有優良的模塊性的基礎,封裝的目標就是要實現軟件部件的“高內聚、低耦合”,防止程序相互依賴性而帶來的變動影響。

在面向對象的編程語言中,對象是封裝的最基本單位。

面向對象的封裝就是把描述一個對象的屬性和行爲的代碼封裝在一個“模塊”中,也就是一個類中,屬性用變量定義,行爲用方法進行定義,方法可以直接訪問同一個對象中的屬性

2、抽象: 抽象就是找出一些事物的相似和共性之處,然後將這些事物歸爲一個類,這個類只考慮這些事物的相似和共性之處,並且會忽略與當前主題和目標無關的那些方面,將注意力集中在與當前目標有關的方面。

3、繼承: 在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作爲自己的內容,並可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這就是繼承。繼承是子類自動共享父類數據和方法的機制,這是類之間的一種關係,提高了軟件的可重用性和可擴展性。

4、多態: 多態是指程序中定義的引用變量所指向的具體類型和通過該引用變量發出的方法調用在編程時並不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發出的方法調用到底是哪個類中實現的方法,必須在由程序運行期間才能決定。

五、java 運行:

 

編輯程序(文本編輯器)-> 源程序(.java)->編譯程序(javac)->字節碼(.class)->解釋程序(java)->運行結果

六、JVM (Java Virtual Machine)

指令集(CPU)

寄存器集

類文件的格式

堆棧

垃圾收集堆

內存區域

七、垃圾回收機制

1、自動檢測並釋放不再需要的內存空間;

2、由系統自動完成(而不是程序完成)

3、Java語言提供了一個系統級線程跟蹤內存的分配情況。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章