基礎與實戰。相關概念及知識點都輔以相應的實例,通俗易懂,便于理解掌握面向對象的編程思想。
實用與流行。涵蓋了Java開發過程中重要的及流行的方法和技巧,講解細致,環環相扣。
教學與互動。文字敘述注重可讀性,知識組織注意合理性,提供輔助在線教學平臺。
本書是《Java 2實用教程》的第5版,繼續保留原教材的特點——注重教材的可讀性和實用性,許多例題都經過精心的考慮,既能幫助理解知識,又具有啟發性。在第5版中,對部分章節的內容做了調整,刪除了原第16章的有關Java Applet的內容;特別修改了原第11章,將數據庫改為MySQL數據庫。
全書共分15章,分別介紹Java的基本數據類型,運算符、表達式和語句,類與對象,子類與繼承,接口與實現,內部類與異常類,常用實用類,組件及事件處理,輸入、輸出流,JDBC與MySQL數據庫,Java多線程機制,Java網絡編程,圖形、圖像與音頻,泛型與集合框架等內容。
第1章介紹Java語言的來歷、地位和重要性,詳細講解了Java平臺。第2章講解基本數據類型。第3章介紹Java運算符和控制語句。第4~7章是本書的重點內容之一,講述了類與對象、子類與繼承、接口與多態、內部類與異常類等內容,對許多重要的知識點都結合例子給予了詳細的講解,特別強調了面向抽象和接口的設計思想以及軟件設計的開閉原則。第8章講述常用的實用類,包括字符串、日期、正則表達式、模式匹配以及數學計算等實用類,特別講解了怎樣使用StringTokenizer、Scanner、Pattern和Matcher類解析字符串。第9章介紹了組件的有關知識,把對事件處理的講解分散到具體的組件,只要真正理解掌握了一種組件事件的處理過程,就會掌握其他組件的事件處理。輸入流、輸出流是Java語言中的經典內容,盡管Java提供了二十多種流,但它們的用法、原理卻很類似。第10章在輸入流、輸出流的講解上突出原理,特別詳細地講解了利用對象流克隆對象的原理。第11章結合例子講解Java與數據庫的連接過程,主要講解Java怎樣使用JDBC操作數據庫,特別講解了預處理、事務處理和批處理等重要技術。多線程是Java語言中的一大特點,占有很重要的地位。第12章通過有針對性的例子使讀者掌握多線程中的重要概念,并介紹怎樣用多線程來解決實際問題。第13章是關于網絡編程的知識,針對套接字,用通俗而準確的語言給予了詳細的講解,使學生認識到多線程在網絡編程中的重要作用,在內容上結合已學知識給出了一些實用性很強的例子,學生可舉一反三編寫相應的網絡程序。第14章是有關圖形、圖像和音頻的知識,結合已學知識給出了許多實用的例子。怎樣有效地使用數據永遠是程序設計中*重要的內容之一,在第15章講述了常用數據結構的Java實現,在講述這些內容時,特別強調如何有效合理地使用各種數據結構。
掃描每章提供的二維碼可觀看相應章節的視頻講解。登錄可獲取全部源代碼和教學資源。智學苑也提供全部視頻講解以及題庫、教學指南等教學資料(使用細節見封底)。教師可加入作者的教材交流群進行教學交流。關注作者的微信公眾號可以在作者的視頻引導下完成一個基于數據庫的課程設計。
希望本書能對讀者學習Java有所幫助,并懇請讀者批評指正。
耿祥義
2017年1月
第1章 Java入門
1.1 Java的地位 1
1.1.1 網絡地位 2
1.1.2 語言地位 2
1.1.3 需求地位 2
1.2 Java的特點 2
1.2.1 簡單 2
1.2.2 面向對象 2
1.2.3 平臺無關 3
1.2.4 多線程 4
1.2.5 動態 4
1.3 安裝JDK 5
1.3.1 平臺簡介 5
1.3.2 安裝Java SE平臺 5
1.3.3 系統環境的設置 7
1.4 Java程序的開發步驟 8
1.5 簡單的Java應用程序 9
1.5.1 源文件的編寫與保存 9
1.5.2 編譯 10
1.5.3 運行 11
1.6 Java反編譯 13
1.7 編程風格 13
1.7.1 Allmans風格 13
1.7.2 Kernighan風格 14
1.7.3 注釋 14
1.8 Java之父——James Gosling 15
1.9 小結 15
習題1 15
第2章 基本數據類型與數組
2.1 標識符與關鍵字 17
2.1.1 標識符 17
2.1.2 Unicode字符集 17
2.1.3 關鍵字 18
2.2 基本數據類型 18
2.2.1 邏輯類型 18
2.2.2 整數類型 18
2.2.3 字符類型 19
2.2.4 浮點類型 20
2.3 類型轉換運算 21
2.4 輸入、輸出數據 23
2.4.1 輸入基本型數據 23
2.4.2 輸出基本型數據 23
2.5 數組 24
2.5.1 聲明數組 24
2.5.2 為數組分配元素 25
2.5.3 數組元素的使用 26
2.5.4 length的使用 27
2.5.5 數組的初始化 27
2.5.6 數組的引用 27
2.6 應用舉例 29
2.7 小結 30
習題2 30
第3章 運算符、表達式和語句
3.1 運算符與表達式 33
3.1.1 算術運算符與算術表達式 33
3.1.2 自增、自減運算符 33
3.1.3 算術混合運算的精度 34
3.1.4 關系運算符與關系表達式 34
3.1.5 邏輯運算符與邏輯表達式 34
3.1.6 賦值運算符與賦值表達式 35
3.1.7 位運算符 35
3.1.8 instanceof運算符 37
3.1.9 運算符綜述 37
3.2 語句概述 38
3.3 if條件分支語句 38
3.3.1 if語句 38
3.3.2 if-else語句 39
3.3.3 if-else if-else語句 40
3.4 switch開關語句 41
3.5 循環語句 43
3.5.1 for循環語句 43
3.5.2 while循環語句 44
3.5.3 do-while循環語句 44
3.6 break和continue語句 45
3.7 for語句與數組 46
3.8 應用舉例 47
3.9 小結 47
習題3 48
第4章 類與對象
4.1 編程語言的幾個發展階段 50
4.1.1 面向機器語言 50
4.1.2 面向過程語言 50
4.1.3 面向對象語言 51
4.2 類 52
4.2.1 類聲明 52
4.2.2 類體 53
4.2.3 成員變量 53
4.2.4 方法 55
4.2.5 需要注意的問題 57
4.2.6 類的UML圖 57
4.3 構造方法與對象的創建 57
4.3.1 構造方法 58
4.3.2 創建對象 59
4.3.3 使用對象 62
4.3.4 對象的引用和實體 63
4.4 類與程序的基本結構 66
4.5 參數傳值 68
4.5.1 傳值機制 68
4.5.2 基本數據類型參數的傳值 68
4.5.3 引用類型參數的傳值 69
4.5.4 可變參數 70
4.6 對象的組合 71
4.6.1 組合與復用 72
4.6.2 類的關聯關系和依賴關系的UML圖 76
4.7 實例成員與類成員 77
4.7.1 實例變量和類變量的聲明 77
4.7.2 實例變量和類變量的區別 77
4.7.3 實例方法和類方法的定義 79
4.7.4 實例方法和類方法的區別 79
4.8 方法重載 81
4.8.1 方法重載的語法規則 81
4.8.2 避免重載出現歧義 83
4.9 this關鍵字 84
4.9.1 在構造方法中使用this 84
4.9.2 在實例方法中使用this 84
4.10 包 86
4.10.1 包語句 86
4.10.2 有包名的類的存儲目錄 86
4.10.3 運行有包名的主類 87
4.11 import語句 88
4.11.1 引入類庫中的類 88
4.11.2 引入自定義包中的類 90
4.12 訪問權限 91
4.12.1 何謂訪問權限 91
4.12.2 私有變量和私有方法 92
4.12.3 共有變量和共有方法 93
4.12.4 友好變量和友好方法 93
4.12.5 受保護的成員變量和方法 94
4.12.6 public類與友好類 95
4.13 基本類型的類封裝 95
4.13.1 Double和Float類 95
4.13.2 Byte、Short、Integer、Long類 95
4.13.3 Character類 95
4.14 對象數組 96
4.15 JRE擴展與jar文件 97
4.16 文檔生成器 98
4.17 應用舉例 99
4.18 小結 105
習題4 105
第5章 子類與繼承
5.1 子類與父類 112
5.1.1 子類 112
5.1.2 類的樹形結構 113
5.2 子類的繼承性 113
5.2.1 子類和父類在同一包中的繼承性 113
5.2.2 子類和父類不在同一包中的繼承性 115
5.2.3 繼承關系(Generalization)的UML圖 115
5.2.4 protected的進一步說明 115
5.3 子類與對象 115
5.3.1 子類對象的特點 115
5.3.2 關于instanceof運算符 117
5.4 成員變量的隱藏和方法重寫 117
5.4.1 成員變量的隱藏 117
5.4.2 方法重寫 118
5.5 super關鍵字 122
5.5.1 用super操作被隱藏的成員變量和方法 122
5.5.2 使用super調用父類的構造方法 124
5.6 final關鍵字 125
5.6.1 final類 125
5.6.2 final方法 125
5.6.3 常量 125
5.7 對象的上轉型對象 126
5.8 繼承與多態 128
5.9 abstract類和abstract方法 129
5.10 面向抽象編程 131
5.11 開-閉原則 134
5.12 應用舉例 135
5.13 小結 138
習題5 138
第6章 接口與實現
6.1 接口 145
6.2 實現接口 146
6.3 接口的UML圖 148
6.4 接口回調 149
6.5 理解接口 150
6.6 接口與多態 152
6.7 接口參數 153
6.8 abstract類與接口的比較 154
6.9 面向接口編程 155
6.10 應用舉例 155
6.11 小結 158
習題6 158
第7章 內部類與異常類
7.1 內部類 162
7.2 匿名類 163
7.2.1 和子類有關的匿名類 163
7.2.2 和接口有關的匿名類 165
7.3 異常類 166
7.3.1 try-catch語句 167
7.3.2 自定義異常類 168
7.4 斷言 169
7.5 應用舉例 171
7.6 小結 172
習題7 172
第8章 常用實用類
8.1 String類 175
8.1.1 構造String對象 175
8.1.2 字符串的并置 177
8.1.3 String類的常用方法 178
8.1.4 字符串與基本數據的相互轉化 182
8.1.5 對象的字符串表示 183
8.1.6 字符串與字符數組、字節數組 184
8.1.7 正則表達式及字符串的替換與分解 186
8.2 StringTokenizer類 191
8.3 Scanner類 192
8.4 StringBuffer類 194
8.4.1 StringBuffer對象 194
8.4.2 StringBuffer類的常用方法 195
8.5 Date類與Calendar類 196
8.5.1 Date類 197
8.5.2 Calendar類 197
8.6 日期的格式化 200
8.6.1 format方法 200
8.6.2 不同區域的星期格式 202
8.7 Math類、BigInteger類和Random類 202
8.7.1 Math類 202
8.7.2 BigInteger類 203
8.7.3 Random類 204
8.8 數字格式化 206
8.8.1 format方法 206
8.8.2 格式化整數 207
8.8.3 格式化浮點數 208
8.9 Class類與Console類 209
8.9.1 Class類 209
8.9.2 Console類 211
8.10 Pattern類與Matcher類 212
8.11 應用舉例 214
8.12 小結 215