《21天學通Java(第7版)》——VC程序員的學習筆記1

第一章 Java基礎

1.2 面向對象編程

       1、Java和VC一樣都是面向對象(OOP)的編程語言。

       2、Java獨立於平臺。即Java開發的程序無須修改便能運行在不同的計算環境中。Java 程序被編譯成一種名爲字節碼的格式,而字節碼可被任何帶Java 虛擬機(JVM)的計算機或設備運行。您可以在Windows 10 機器上創建Java 程序,然後在Linux Web 服務器、使用OS 10.10 的Apple Mac 和三星Android 手機上運行。只要平臺安裝了JVM,就能運行字節碼。

       3、Java 主要在以下方面比C++更容易。

           Java 自動負責內存的分配和釋放,將程序員從這種容易出錯而複雜的工作中解放出來。

          Java 沒有指針。對經驗豐富的程序員來說,指針是一種功能強大的特性,但也容易誤用以及帶來嚴重的安全隱患。(從後文可以看出,雖然Java沒有顯式的指針,但是存在有隱式的指針,比如數組

         Java 只具備面向對象編程中的單繼承。

       4、Java 之所以安全的兩個關鍵因素是沒有指針且能自動管理內存。

1.3 對象和類

       1、含義和作用同VC。

       2、類是用於創建對象的模板。使用同一個類創建的每個對象都具有相似的特性。

       3、類是抽象概念模型。要在程序中有能夠實際操縱的具體東西,必須有對象。使用類創建對象的過程叫做實例化(instantiation),這就是對象也被稱作實例的原因所在。

1.4 屬性和行爲

       1、含義和作用同VC。

       2、屬性(attribute)是對象區別於其他對象的數據,可用於確定屬於該類的對象的外觀、狀態和其他性質。

       3、實例變量(instance variable)定義了特定對象的屬性。實例變量也被稱爲對象變量(object variable)或成員變量(member variable)。(CVC中就是類的成員變量

       4、類變量(class variable)定義了類的屬性。該變量用於類本身及其所有實例,因此不管使用該類創建了多少個對象,都只存儲該變量的一個值。(通常情況下,該類的常量被定義爲類變量,不輕易修改。類變量一旦修改,將影響所有實例。例如一些限制值,定義爲類變量比定義爲實例變量更合適,比如汽車運行的最高時速。

       5、行爲(behavior)指的是對象能夠對自身和其他對象執行的操作。行爲可以用來修改對象的屬性、接收來自其他對象的信息以及向其他對象發送消息讓它們執行任務。行爲是使用方法實現的。

       6、方法(method)是類中一組用來完成特定任務的相關語句。它們用來針對對象本身或其他對象執行特定任務,相當於其他編程語言中的函數和子程序。設計良好的方法只執行一項任務。(VC中也叫方法,但更習慣稱爲函數、成員函數。

       7、方法也分爲實例方法和類方法。實例方法(instance method)通常被簡稱爲方法,用於處理類的一個對象。如果一個方法對各個對象進行修改,它必須是實例方法。類方法(class method)適用於類本身。

       8、Java中只要保存了文件即進行了編譯。(VC需要手動編譯)。

       9、定義類的關鍵字爲class,同VC。

       10、類的對象可以作爲另一個類的實例變量,同VC。

       11、方法的定義方式同VC,包含返回值、方法名、及參數列表。

       12、使用類的方式有兩種:

              1) 創建一個獨立的Java 程序,並在其中創建這個類的對象;同VC。

              2) 在類中添加一個特殊的類方法—main( ),使其能作爲一個應用程序運行;然後在方法main( )中創建類對象。

       13、本章節中講到了運行功能。點擊菜單欄中的運行按鈕,將默認運行主類,如果想要運行非主類,應選擇“運行”-》“運行文件”,則當前活動文件中的類將被運行。

       14、所有mian()方法的格式都爲:       public static void main(String[] arguments)

       15、關鍵字static表明該方法或變量爲類方法或類變量,任何類的對象執行了該方法或修改了該變量,會影響到這個類的所有對象(類似VC中的全局變量和全局函數)。

1.5 組織類和類行爲

       Java 面向對象編程還涉及另外三個概念:繼承、接口和包,這些都是用於組織類和類行爲的機制。(“繼承”的概念類似VC;“包”的概念類似於VC中的“庫”

       1、繼承其他類的類叫子類,被繼承的類叫超類。(VC中叫父類,可能只是翻譯的問題,在其他java資料中有的也稱呼爲父類

       2、一個類只能有一個超類,但可以有任意數目的子類。(VC中一個類允許有多個父類,稱爲多繼承,java中只有單繼承(single inheritance),簡化了繼承機制

       3、Java 類層次結構的頂端是類Object,所有的類都是從這個超類繼承而來的。Object 是層次結構中最通用的類,定義了Java 類庫中的所有類的行爲。

       4、層次結構中越往下,類的用途越具體。層次結構的頂部定義的是抽象概念,越往下,這些概念越具體。

       5、子類化指的是通過繼承已有的類來創建一個新類,子類只需指出其屬性和行爲不同於超類的地方。

       6、如果一個類定義了全新的行爲,且不是其他類的子類,則可以直接繼承Object 類。沒有指定超類時,Java 將認爲它直接繼承Object。

       7、如果在實踐總創建了大量的類,則應該讓這些類從現有類層次結構繼承,並構建自身的層次結構。

    1. 可將多個類共有的功能放在一個超類中,這樣就可以在更底層的類中重複使用這些功能;
    2. 對超類的修改將自動反映到其所有的子類、子類的子類等中,而無須修改或重新編譯更底層的類,它們將通過繼承獲得新的信息。

       (一種共有屬性和行爲的提取,提高代碼的使用率,從而減少代碼的重複性,既能精簡代碼,又能提高編程效率,同時可減少錯誤的發生

       8、子類定義一個與超類方法相同(必須名稱、返回值和參數都相同)的方法,即爲覆蓋(override)。層次越低的方法優先級越高。因爲當對象調用一個方法時,java是從層次結構的底部開始查找,一旦找到就不再繼續。

       9、接口是一組方法,它指出類除了從超類繼承的行爲外,還有其他行爲。接口中的方法並沒有定義行爲,這項任務將由實現該接口的類去完成。(第6章)

       10、在Java 中,用於將相關的類和接口編組,使得更容易在其他類中引用它們;包還避免了類之間潛在的命名衝突。(包的概念類似於VC中的庫。

       11、引用Java 類時,可使用簡短的名稱,如Object,也可使用完整的名稱,如java.lang.Object。

默認情況下,只需通過簡短的名稱就可引用java.lang 包中的類。java.lang 包提供了基本的語言功能,如字符串處理和數學運算。要使用其他包中的類,必須使用完整的包名或使用import 語句將包導入到源代碼文件中。

       12、要指定類所屬的包,可使用package 語句。這條語句必須位於類的最前面。(就如同C中的#include

       13、關鍵字import 不會將指定類或包的字節碼加入到當前創建的類中,而只是使得在一個類中引用另一個類更容易。通過導入,在Java 語句中引用類時,可使用簡短的名稱,這是導入的唯一目的。

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