Java程序設計精編教程(微課視頻·題庫版)(第5版)
耿祥義、張躍平
商品描述
目錄大綱
第 1 章 Java 入門
1.1 Java 的平臺無關性 . . . . . . . . 1
1.1.1 平臺與機器指令 . . . . . . . . 1
1.1.2 C/C++程序依賴平臺 . . . . . . . … 2
1.1.3 虛擬機與平臺 . . . . . . . . … 2
1.2 Java 之父——James Gosling . . . . . . … 3
1.3 Java 的地位 . . . . . . . . . 3
1.3.1 網絡地位 . . . . . . . . . 3
1.3.2 語言地位 . . . . . . . . . 3
1.3.3 需求地位 . . . . . . . . . 4
1.4 安裝 JDK . . . . . . . . . … 4
1.4.1 平臺簡介 . . . . . . . . . 4
1.4.2 安裝 Java SE 平臺 . . . . . . . … … 4
1.4.3 系統環境的設置 . . . . . . . . 6
1.5 Java 程序的開發步驟 . . . . . . . … … 7
1.6 一個簡單的 Java 應用程序 . . . . . . . 8
1.6.1 編寫源文件 . . . . . . . . … … 8
1.6.2 編譯 . . . . . . . . . … … 9
1.6.3 運行 . . . . . . . . . … … 11
1.7 上機實踐 . . . . . . . . . . 11
1.7.1 輸出兩行文字 . . . . . . . . … 11
1.7.2 使用-encoding 參數 . . . . . . . … 13
1.8 課外讀物 . . . . . . . . . . 13
習題 1 . . . . . . . . . . . 14第 Ⅳ
2 章 Java 應用程序的基本結構
2.1 問題的提出 . . . . . . . . . 15
2.2 簡單的 Circle 類 . . . . . . . . … 16
2.3 使用 Circle 類創建對象 . . . . . . . … 16
2.3.1 用類聲明對象 . . . . . . . . … 17
2.3.2 為對象分配變量 . . . . . . . . 17
2.3.3 使用對象 . . . . . . . . . 18
2.4 在應用程序中使用對象 . . . . . . . … 18
2.5 Java 應用程序的基本結構 . . . . . . … … 19
2.6 在一個源文件中編寫多個類 . . . . . . … … 21
2.7 編程風格 . . . . . . . . . … 22
2.7.1 Allmans 風格 . . . . . . . . … 22
2.7.2 Kernighan 風格 . . . . . . . . 22
2.7.3 註釋 . . . . . . . . . … … 23
2.8 上機實踐 . . . . . . . . . . 23
2.8.1 聯合編譯 . . . . . . . . . 23
2.8.2 編譯多個類 . . . . . . . . … … 25
2.9 課外讀物 . . . . . . . . . . 26
習題 2 . . . . . . . . . . . 26
第 3 章 標識符與簡單數據類型
3.1 標識符與關鍵字 . . . . . . . . … 27
3.1.1 標識符 . . . . . . . . . … 27
3.1.2 關鍵字 . . . . . . . . . … 27
3.2 簡單數據類型 . . . . . . . . … … 28
3.2.1 邏輯類型 . . . . . . . . . 28
3.2.2 整數類型 . . . . . . . . . 28
3.2.3 字符類型 . . . . . . . . . 29
3.2.4 浮點類型 . . . . . . . . . 30
3.3 簡單數據類型的級別與類型轉換運算 . . . . . … 31
3.4 從命令行窗口輸入輸出數據 . . . . . . … … 32
3.4.1 輸入基本型數據 . . . . . . . . 32
3.4.2 輸出基本型數據 . . . . . . . . 33
3.5 上機實踐 . . . . . . . . . . 34
3.5.1 輸出希臘字母 . . . . . . . . … 34
3.5.2 產品的總價 . . . . . . . . … … 35
3.6 課外讀物 . . . . . . . . . . 36
習題 3 . . . . . . . . . . . 37Ⅴ
第 4 章 運算符、 表達式與語句
4.1 運算符與表達式 . . . . . . . . … 38
4.1.1 算術運算符與算術表達式 . . . . . . … … 38
4.1.2 自增、 自減運算符 . . . . . . . … … 38
4.1.3 算術混合運算的精度 . . . . . . . … 38
4.1.4 關系運算符與關系表達式 . . . . . . … … 39
4.1.5 邏輯運算符與邏輯表達式 . . . . . . … … 39
4.1.6 賦值運算符與賦值表達式 . . . . . . … … 40
4.1.7 位運算符 . . . . . . . . . 40
4.1.8 instanceof 運算符 . . . . . . . … … 41
4.1.9 運算符綜述 . . . . . . . . … … 41
4.2 語句概述 . . . . . . . . . … 41
4.3 條件分支語句 . . . . . . . . … … 42
4.3.1 if 語句 . . . . . . . . . … 42
4.3.2 if… else 語句 . . . . . . . . … 42
4.3.3 if… else if… else 語句 . . . . . . . 43
4.4 開關語句 . . . . . . . . . … 45
4.5 循環語句 . . . . . . . . . … 47
4.5.1 for 循環語句 . . . . . . . . … 47
4.5.2 while 循環語句 . . . . . . . . 48
4.5.3 do… while 循環語句 . . . . . . . … 48
4.6 break 和 continue 語句 . . . . . . . 49
4.7 數組 . . . . . . . . . . 50
4.7.1 聲明數組 . . . . . . . . . 50
4.7.2 為數組分配元素 . . . . . . . . 51
4.7.3 數組元素的使用 . . . . . . . . 52
4.7.4 length 的使用 . . . . . . . . 52
4.7.5 數組的初始化 . . . . . . . . … 52
4.7.6 數組的引用 . . . . . . . . … … 52
4.7.7 遍歷數組 . . . . . . . . . 54
4.8 上機實踐 . . . . . . . . . . 55
4.8.1 猜數遊戲 . . . . . . . . . 55
4.8.2 遍歷與復制數組 . . . . . . . . 56
4.9 課外讀物 . . . . . . . . . . 58
習題 4 . . . . . . . . . . . 58
第 5 章 類與對象
5.1 面向對象的特性 . . . . . . . . … 60
5.2 類 . . . . . . . . . . … 61Ⅵ
5.2.1 類聲明 . . . . . . . . . … 61
5.2.2 類體 . . . . . . . . . … … 62
5.2.3 成員變量 . . . . . . . . . 62
5.2.4 方法 . . . . . . . . . … … 63
5.2.5 需要註意的問題 . . . . . . . . 65
5.2.6 類的 UML 圖 . . . . . . . . … 65
5.3 構造方法與對象的創建 . . . . . . . … 66
5.3.1 構造方法 . . . . . . . . . 66
5.3.2 創建對象 . . . . . . . . . 67
5.3.3 使用對象 . . . . . . . . . 69
5.3.4 對象的引用和實體 . . . . . . . … … 70
5.4 參數傳值 . . . . . . . . . … 71
5.4.1 傳值機制 . . . . . . . . . 71
5.4.2 基本數據類型參數的傳值 . . . . . . … … 72
5.4.3 引用類型參數的傳值 . . . . . . . … 72
5.5 對象的組合 . . . . . . . . . 75
5.5.1 由矩形和圓組合而成的圖形 . . . . . . … 75
5.5.2 關聯關系和依賴關系的 UML 圖 . . . . . … … 78
5.6 實例成員與類成員 . . . . . . . . 79
5.6.1 實例變量和類變量的聲明 . . . . . . … … 79
5.6.2 實例變量和類變量的區別 . . . . . . … … 79
5.6.3 實例方法和類方法的定義 . . . . . . … … 81
5.6.4 實例方法和類方法的區別 . . . . . . … … 81
5.7 方法重載與多態 . . . . . . . . … 82
5.8 this 關鍵字 . . . . . . . . . 83
5.8.1 在構造方法中使用 this . . . . . . . 84
5.8.2 在實例方法中使用 this . . . . . . . 84
5.9 包 . . . . . . . . . . … 86
5.9.1 包語句 . . . . . . . . . … 86
5.9.2 有包名的類的存儲目錄 . . . . . . . 86
5.9.3 運行有包名的主類 . . . . . . . … … 87
5.10 import 語句 . . . . . . . . … … 88
5.10.1 引入類庫中的類 . . . . . . . … … 88
5.10.2 引入自定義包中的類 . . . . . . . 89
5.11 訪問權限 . . . . . . . . . 91
5.11.1 何謂訪問權限 . . . . . . . . 91
5.11.2 私有變量和私有方法 . . . . . . . 91
5.11.3 共有變量和共有方法 . . . . . . . 92
5.11.4 友好變量和友好方法 . . . . . . . 93
5.11.5 受保護的成員變量和方法 . . . . . . … 93
5.11.6 public 類與友好類. . . . . . . … 94
5.12 基本類型的類包裝 . . . . . . . . … 94Ⅶ
5.12.1 Double 類和 Float 類 . . . . . . … … 95
5.12.2 Byte 類、 Short 類、 Integer 類、 Long 類 . . . . 95
5.12.3 Character 類 . . . . . . . . 95
5.13 可變參數 . . . . . . . . . 95
5.14 var 局部變量 . . . . . . . . … 97
5.15 上機實踐 . . . . . . . . . … … 98
5.15.1 機動車 . . . . . . . . . 98
5.15.2 電視機 . . . . . . . . . 99
5.15.3 森林 . . . . . . . . . 101
5.16 課外讀物 . . . . . . . . . … … 103
習題 5 . . . . . . . . . . … … 103
第 6 章 子類與繼承
6.1 子類與父類 . . . . . . . . … … 106
6.2 子類的繼承性 . . . . . . . . … 107
6.2.1 子類和父類在同一包中的繼承性 . . . . . … 107
6.2.2 子類和父類不在同一包中的繼承性 . . . . . 108
6.2.3 繼承關系的 UML 圖. . . . . . . … 108
6.3 成員變量的隱藏和方法重寫 . . . . . . … 108
6.3.1 成員變量的隱藏 . . . . . . . … … 108
6.3.2 方法重寫 . . . . . . . . … … 108
6.4 super 關鍵字 . . . . . . . . … 111
6.4.1 用 super 操作被隱藏的成員變量和方法 . . . . … 111
6.4.2 使用 super 調用父類的構造方法 . . . . . … 113
6.5 final 關鍵字 . . . . . . . . … … 114
6.5.1 final 類 . . . . . . . . . 114
6.5.2 final 方法 . . . . . . . . … … 114
6.5.3 常量 . . . . . . . . . … 114
6.6 對象的上轉型對象 . . . . . . . … … 114
6.7 繼承與多態 . . . . . . . . … … 116
6.8 abstract 類和 abstract 方法 . . . . . . … 117
6.9 面向抽象編程 . . . . . . . . … 118
6.10 開-閉原則 . . . . . . . . … … 121
6.11 上機實踐 . . . . . . . . . … … 122
6.11.1 面積之和 . . . . . . . . … 122
6.11.2 薪水總和 . . . . . . . . … 124
6.12 課外讀物 . . . . . . . . . … … 126
習題 6 . . . . . . . . . . … … 126第 Ⅷ
7 章 接口與實現
7.1 接口 . . . . . . . . . … … 128
7.2 實現接口 . . . . . . . . . 129
7.3 理解接口 . . . . . . . . . 131
7.4 接口的 UML 圖 . . . . . . . . … 132
7.5 接口回調 . . . . . . . . . 132
7.6 接口與多態 . . . . . . . . … … 134
7.7 接口變量作參數 . . . . . . . . 135
7.8 abstract 類與接口的比較 . . . . . . … … 136
7.9 面向接口編程 . . . . . . . . … 136
7.10 函數接口與 Lambda 表達式 . . . . . . 139
7.11 上機實踐 . . . . . . . . . … … 141
7.11.1 評價成績 . . . . . . . . … 141
7.11.2 小狗的狀態 . . . . . . . . 142
7.12 課外讀物 . . . . . . . . . … … 144
習題 7 . . . . . . . . . . … … 144
第 8 章 內部類與異常類
8.1 內部類 . . . . . . . . . … 146
8.2 匿名類 . . . . . . . . . … 147
8.2.1 和子類有關的匿名類 . . . . . . . 147
8.2.2 和接口有關的匿名類 . . . . . . . 149
8.3 異常類 . . . . . . . . . … 150
8.3.1 try… catch 語句 . . . . . . . … … 150
8.3.2 自定義異常類 . . . . . . . . 151
8.3.3 finally 子語句 . . . . . . . . 153
8.4 斷言 . . . . . . . . . … … 154
8.5 上機實踐 . . . . . . . . . … … 155
8.5.1 內部購物券 . . . . . . . . … 155
8.5.2 檢查危險品 . . . . . . . . … 157
8.6 課外讀物 . . . . . . . . . … … 159
習題 8 . . . . . . . . . . … … 159
第 9 章 常用實用類
9.1 String 類 . . . . . . . . . … … 160
9.1.1 構造字符串對象 . . . . . . . 160
9.1.2 String 類的常用方法 . . . . . . … 161
9.1.3 字符串與基本數據的相互轉換 . . . . . 164Ⅸ
9.1.4 對象的字符串表示 . . . . . . … … 166
9.1.5 字符串與字符數組、 字節數組 . . . . . 166
9.1.6 正則表達式及字符串的替換與分解 . . . . … 169
9.2 StringBuffer 類 . . . . . . . . 172
9.2.1 StringBuffer 對象的創建 . . . . . . … 172
9.2.2 StringBuffer 類的常用方法 . . . . . . 173
9.3 StringTokenizer 類 . . . . . . . … … 175
9.4 Date 類 . . . . . . . . . … 176
9.4.1 構造 Date 對象 . . . . . . . … … 176
9.4.2 日期格式化 . . . . . . . . … 176
9.5 Calendar 類 . . . . . . . . … … 178
9.6 Math 類和 BigInteger 類 . . . . . . … … 181
9.6.1 Math 類 . . . . . . . . … … 181
9.6.2 BigInteger 類 . . . . . . . . 181
9.7 DecimalFormat 類 . . . . . . . … … 182
9.7.1 格式化數字 . . . . . . . . … 182
9.7.2 將格式化字符串轉換為數字 . . . . . . 184
9.8 Pattern 類和 Match 類 . . . . . . . 185
9.8.1 模式對象 . . . . . . . . … … 185
9.8.2 匹配對象 . . . . . . . . … … 185
9.9 Scanner 類 . . . . . . . . … … 187
9.10 Record 類 . . . . . . . . . … 188
9.11 UUID 類 . . . . . . . . . … … 190
9.12 上機實踐 . . . . . . . . . … … 191
9.12.1 購物小票 . . . . . . . . … 191
9.12.2 替換錯別字 . . . . . . . . 192
9.13 課外讀物 . . . . . . . . . … … 193
習題 9 . . . . . . . . . . … … 194
第10 章 輸入輸出流
10.1 File 類 . . . . . . . . . … … 196
10.1.1 文件的屬性 . . . . . . . … 197
10.1.2 目錄 . . . . . . . . … 197
10.1.3 文件的創建與刪除 . . . . . . … 199
10.1.4 運行可執行文件 . . . . . . … … 199
10.2 字節流與字符流 . . . . . . . … … 199
10.2.1 InputStream 類與 OutputStream 類 . . . . … 200
10.2.2 Reader 類與 Writer 類 . . . . . . … 200
10.2.3 關閉流. . . . . . . . … … 201
10.3 文件字節流 . . . . . . . . . 201
10.3.1 文件字節輸入流 . . . . . . … … 201Ⅹ
10.3.2 文件字節輸出流 . . . . . . … … 202
10.4 文件字符流 . . . . . . . . … 203
10.5 緩沖流 . . . . . . . . . 204
10.6 隨機流 . . . . . . . . . 206
10.7 數組流 . . . . . . . . . 208
10.8 數據流 . . . . . . . . . 210
10.9 對象流 . . . . . . . . . 213
10.10 序列化與對象克隆 . . . . . . . … 215
10.11 文件鎖 . . . . . . . . . 216
10.12 使用 Scanner 解析文件 . . . . . . … 217
10.13 上機實踐 . . . . . . . . . … 219
10.13.1 分析成績單 . . . . . . . … 219
10.13.2 統計英文單詞 . . . . . . . 221
10.14 課外讀物 . . . . . . . . . … 223
習題 10 . . . . . . . . . . … 223
第 11 章 組件與事件處理
11.1 Java Swing 概述 . . . . . . . … … 225
11.2 窗口 . . . . . . . . . . 226
11.2.1 JFrame 常用方法 . . . . . . … 226
11.2.2 菜單條、 菜單、 菜單項 . . . . . … … 227
11.3 常用組件與布局 . . . . . . . . … 229
11.3.1 常用組件 . . . . . . . … … 229
11.3.2 常用容器 . . . . . . . … … 231
11.3.3 常用布局 . . . . . . . … … 232
11.3.4 選項卡窗格 . . . . . . . … 234
11.4 處理事件 . . . . . . . . . … 236
11.4.1 事件處理模式 . . . . . . . 237
11.4.2 ActionEvent 事件 . . . . . . … 237
11.4.3 ItemEvent 事件 . . . . . . … … 241
11.4.4 DocumentEvent 事件 . . . . . … … 243
11.4.5 MouseEvent 事件 . . . . . . … 245
11.4.6 焦點事件 . . . . . . . … … 249
11.4.7 鍵盤事件 . . . . . . . … … 249
11.4.8 匿名類實例或窗口作為監視器 . . . . … … 252
11.4.9 事件總結 . . . . . . . … … 254
11.5 使用 MVC 結構 . . . . . . . … … 254
11.6 對話框 . . . . . . . . . … … 257
11.6.1 消息對話框 . . . . . . . … 257Ⅺ
11.6.2 輸入對話框 . . . . . . . … 259
11.6.3 確認對話框 . . . . . . . … 260
11.6.4 顏色對話框 . . . . . . . … 262
11.6.5 文件對話框 . . . . . . . … 263
11.6.6 自定義對話框 . . . . . . . 265
11.7 發布 GUI 程序 . . . . . . . . 267
11.8 上機實踐 . . . . . . . . . … 267
11.8.1 算術測試. . . . . . . . … 267
11.8.2 計算器. . . . . . . . … … 271
11.9 課外讀物 . . . . . . . . . … 274
習題 11 . . . . . . . . . . … 274
第 12 章 Java 多線程機制
12.1 進程與線程 . . . . . . . . … 275
12.1.1 操作系統與進程. . . . . . . … 275
12.1.2 進程與線程. . . . . . . . 275
12.2 Java 中的線程 . . . . . . . . 276
12.2.1 Java 的多線程機制 . . . . . . … … 276
12.2.2 線程的狀態與生命周期. . . . . . … 277
12.2.3 線程調度與優先級. . . . . . . 280
12.3 Thread 類與線程的創建 . . . . . . … … 280
12.3.1 使用 Thread 的子類 . . . . . . … … 280
12.3.2 使用 Thread 類 . . . . . . . … 281
12.3.3 關於 run()方法啟動的次數 . . . . . … … 282
12.4 線程的常用方法 . . . . . . . … … 282
12.5 線程同步 . . . . . . . . … … 286
12.6 在同步方法中使用 wait()、 notify()和 notifyAll()方法 . . … 287
12.7 線程聯合 . . . . . . . . … … 289
12.8 上機實踐——打字練習 . . . . . . . … 290
12.9 課外讀物 . . . . . . . . . … 292
習題 12 . . . . . . . . . . … 293
第 13 章 Java 網絡編程
13.1 URL 類 . . . . . . . . . 295
13.1.1 URL 的構造方法 . . . . . . . 295
13.1.2 讀取 URL 中的資源 . . . . . . … … 296
13.2 InetAddress 類 . . . . . . . … … 297
13.2.1 地址的表示. . . . . . . . 297Ⅻ
13.2.2 獲取地址. . . . . . . . … 297
13.3 套接字 . . . . . . . . . … … 298
13.3.1 套接字概述 . . . . . . . … 298
13.3.2 客戶端套接字. . . . . . . … … 298
13.3.3 ServerSocket 對象與服務器端套接字 . . . . 299
13.3.4 使用多線程技術 . . . . . . … … 301
13.4 UDP 數據報 . . . . . . . . … 305
13.4.1 發送數據包. . . . . . . . 305
13.4.2 接收數據包. . . . . . . . 306
13.5 廣播數據報 . . . . . . . . … 309
13.6 上機實踐——結算賬單 . . . . . . … … 311
13.7 課外讀物 . . . . . . . . . … 314
習題 13 . . . . . . . . . . … 314
第 14 章 綜合實訓——生命遊戲
14.1 遊戲規則 . . . . . . . . . … 315
14.2 實訓目的 . . . . . . . . . … 315
14.3 數據模型和視圖 . . . . . . . . … 316
14.4 實訓代碼 . . . . . . . . . … 316
14.5 實訓練習 . . . . . . . . . … 325
14.6 課外讀物 . . . . . . . . . … 32







