Java面向對象程序設計(第3版)
陳旭東
商品描述
本書以面向對象分析與設計思想為核心,講述Java面向對象程序設計的主要技術。本書以**版本Java SE為基礎,全面介紹Java語言基礎知識、面向對象編程技術、UML、異常、斷言與日誌、輸入輸出、泛型、集合框架、Lambda表達式、多線程、圖形用戶界面、網絡編程、使用第三方類庫等內容。各章提供經過調試運行的實例,並在相關章節中附有配套練習題。
目錄大綱
目 錄
第1章 Java語言基礎 1
1.1 Java語言簡介 1
1.1.1 Java發展 1
1.1.2 Java平臺 2
1.1.3 Java開發環境 2
1.2 簡單的Java程序 4
1.2.1 編輯Java源文件 4
1.2.2 編譯源程序 4
1.2.3 運行Java應用程序 5
1.2.4 程序分析 5
1.3 關鍵字與標識符 8
1.3.1 關鍵字 8
1.3.2 標識符 8
1.4 數據類型 9
1.4.1 整數類型 10
1.4.2 浮點類型 10
1.4.3 字符類型 10
1.4.4 布爾類型 11
1.5 變量聲明與賦值 11
1.6 運算符與表達式 12
1.6.1 算術運算 12
1.6.2 關系運算 12
1.6.3 布爾運算 13
1.6.4 位運算 13
1.6.5 其他運算 14
1.6.6 運算符的優先級與結合性 15
1.6.7 類型轉換 15
1.6.8 表達式 16
1.7 枚舉類型 17
1.8 流程控制 17
1.8.1 if語句 17
1.8.2 switch語句 18
1.8.3 while語句 20
1.8.4 do…while語句 20
1.8.5 for語句 20
1.8.6 流程轉移語句 22
習題 23
第2章 類和對象 25
2.1 面向對象的軟件開發過程 25
2.2 類和對象的基本概念 25
2.3 類的定義 26
2.3.1 定義類 26
2.3.2 屬性 27
2.3.3 構造方法 28
2.3.4 方法 28
2.4 對象的使用 31
2.4.1 創建對象 31
2.4.2 使用對象 31
2.5 封裝 33
2.5.1 封裝與信息隱藏 33
2.5.2 Getter和Setter方法 33
2.6 方法重載 34
2.7 this關鍵字 36
2.7.1 使用當前對象 36
2.7.2 調用構造方法 37
2.8 類成員和實例成員 38
2.8.1 類屬性和實例屬性 38
2.8.2 類方法和實例方法 38
2.8.3 類屬性和實例屬性的初始化 40
2.9 包和模塊 41
2.9.1 包 42
2.9.2 模塊 43
2.10 嵌套類 44
2.10.1 靜態嵌套類 44
2.10.2 內部類 45
2.10.3 局部類 47
習題 49
第3章 繼承和多態 50
3.1 類的繼承 50
3.1.1 繼承概念 50
3.1.2 繼承實現 50
3.1.3 方法覆蓋 51
3.1.4 super關鍵字 52
3.1.5 類型轉換 55
3.1.6 java.lang.Object類 57
3.1.7 final關鍵字 61
3.2 訪問控制 62
3.2.1 私有訪問權限 63
3.2.2 包訪問權限 63
3.2.3 子類訪問權限 64
3.2.4 公共訪問權限 65
3.3 抽象類與接口 65
3.3.1 抽象類 66
3.3.2 接口定義 67
3.3.3 接口實現 68
3.3.4 使用接口類型 69
3.4 多態 70
3.4.1 繼承與多態 71
3.4.2 接口與多態 72
3.4.3 多態的優點 73
3.5 設計模式 74
3.5.1 單例模式 74
3.5.2 策略模式 75
習題 77
第4章 數組與字符串 79
4.1 數組 79
4.1.1 創建數組 79
4.1.2 訪問數組元素 80
4.1.3 數組初始化 81
4.1.4 數組參數與返回數組 82
4.2 數組的基本操作 84
4.2.1 數組復制 84
4.2.2 數組比較 86
4.2.3 數組排序 87
4.2.4 數組查找 91
4.3 多維數組 93
4.4 可變參數的方法 95
4.5 字符串 96
4.5.1 String 96
4.5.2 StringBuffer 和 StringBuilder 98
4.6 命令行參數 99
習題 100
第5章 泛型與集合框架 101
5.1 泛型 101
5.1.1 泛型類型 101
5.1.2 泛型方法 104
5.1.3 有界類型參數 105
5.1.4 泛型類型的繼承 107
5.1.5 通配符 108
5.1.6 類型擦除 112
5.2 集合框架簡介 115
5.2.1 集合接口 115
5.2.2 集合實現 117
5.2.3 集合算法 117
5.3 集合實現 118
5.3.1 ArrayList<E> 119
5.3.2 HashSet<E> 122
5.3.3 HashMap<K,V> 124
5.3.4 LinkedList<E> 126
5.4 集合算法 128
5.4.1 數據操作 129
5.4.2 排序 129
5.4.3 查找 130
習題 132
第6章 異常處理機制 133
6.1 異常 133
6.1.1 異常分類 133
6.1.2 常用標準異常類 134
6.2 異常處理 135
6.2.1 捕獲異常 135
6.2.2 方法聲明拋出異常 137
6.2.3 拋出異常 138
6.2.4 異常鏈 139
6.2.5 覆蓋拋出異常的方法 140
6.3 自定義異常 141
6.3.1 創建自定義異常類 142
6.3.2 使用自定義異常 142
6.4 日誌 143
6.4.1 日誌記錄器 143
6.4.2 使用全局日誌記錄器 144
6.4.3 使用自定義日誌記錄器 145
6.4.4 Java主流日誌工具 146
6.5 斷言 146
6.5.1 斷言編譯 147
6.5.2 打開與關閉斷言 147
6.5.3 斷言應用 148
習題 150
第7章 線程 151
7.1 線程的概念 151
7.2 線程的實現 151
7.2.1 繼承Thread類 152
7.2.2 實現Runnable接口 153
7.2.3 實現Callable<V>接口 155
7.2.4 使用Lambda表達式 156
7.2.5 線程的生命周期 157
7.3 線程的控制 158
7.3.1 暫停線程執行 158
7.3.2 等待線程結束 158
7.3.3 中斷線程執行 159
7.3.4 線程優先級 161
7.3.5 Daemon線程 161
7.4 多線程同步 162
7.4.1 原子操作 162
7.4.2 原子變量 163
7.4.3 基於對象鎖的線程同步 164
7.4.4 wait()和notify() 167
7.5 線程池 170
7.5.1 Callable和Future 170
7.5.2 Executor接口 171
7.5.3 線程池 171
7.6 死鎖問題 174
習題 174
第8章 輸入/輸出 176
8.1 流的概念 176
8.1.1 輸入流和輸出流 176
8.1.2 字節流和字符流 176
8.1.3 節點流和處理流 177
8.2 字節流 177
8.2.1 InputStream類 178
8.2.2 OutputStream類 178
8.2.3 字節流應用示例 179
8.3 字符流 181
8.3.1 Reader類 181
8.3.2 Writer類 182
8.3.3 字符流應用示例 182
8.4 命令行I/O 183
8.4.1 標準流 183
8.4.2 控制臺 184
8.5 格式化I/O 185
8.5.1 格式化輸入 185
8.5.2 格式化輸出 188
8.6 對象的序列化和反序列化 189
8.7 隨機訪問文件 192
8.8 文件NIO 195
8.8.1 Path接口 195
8.8.2 文件和目錄 198
8.8.3 文件和目錄操作 200
8.8.4 文件讀寫 201
8.8.5 文件和目錄屬性 203
8.8.6 目錄遍歷 204
習題 208
第9章 圖形用戶界面 210
9.1 Swing概述 210
9.2 Swing容器 210
9.2.1 頂層容器JFrame 211
9.2.2 頂層容器JDialog 212
9.2.3 通用容器JPanel 214
9.2.4 通用容器JScrollPane 215
9.2.5 通用容器JSplitPane 216
9.2.6 通用容器JToolBar 218
9.3 Swing組件 218
9.3.1 標簽 219
9.3.2 按鈕 220
9.3.3 復選框 221
9.3.4 單選按鈕 221
9.3.5 列表框 223
9.3.6 組合框 224
9.3.7 文本輸入 225
9.3.8 進度條 227
9.3.9 菜單 228
9.4 布局管理器 232
9.4.1 BorderLayout 232
9.4.2 FlowLayout 233
9.4.3 BoxLayout 234
9.4.4 GridLayout 235
9.4.5 CardLayout 236
9.4.6 GridBagLayout 238
9.5 事件處理 241
9.5.1 事件處理機制 241
9.5.2 事件適配器 243
9.5.3 內部監聽器 245
9.5.4 匿名監聽器 245
9.5.5 事件處理實例 247
9.6 多媒體 251
9.6.1 繪圖 252
9.6.2 基本圖形 252
9.6.3 顏色和字體 253
9.6.4 圖像 254
9.6.5 動畫 257
習題 259
第10章 網絡通信 260
10.1 網絡基本概念 260
10.1.1 TCP協議 260
10.1.2 UDP協議 261
10.1.3 IP地址和端口 261
10.2 Java網絡功能 262
10.2.1 網絡接口層 262
10.2.2 網絡層 263
10.2.3 傳輸層 265
10.2.4 應用層 266
10.3 基於TCP的網絡通信 266
10.3.1 TCP服務器 267
10.3.2 TCP客戶端 268
10.3.3 處理多客戶請求 271
10.4 基於UDP的網絡通信 274
10.4.1 UDP服務器 275
10.4.2 UDP客戶端 276
10.4.3 多播通信 278
10.5 使用URL 282
10.5.1 創建URL對象 283
10.5.2 解析URL 284
10.5.3 讀取URL資源內容 284
10.5.4 使用URL連接 285
10.5.5 與Servlet交互 287
習題 290
第11章 訪問數據庫 292
11.1 SQL語言 292
11.1.1 關系數據庫簡介 292
11.1.2 SQL語言 292
11.2 JDBC概述 294
11.3 使用JDBC訪問數據庫 295
11.4 使用SQLite數據庫 298
11.4.1 SQLite簡介 298
11.4.2 SQLite數據庫基本操作 299
11.4.3 使用帶參數的SQL語句 302
11.5 使用ResultSet更新數據庫 304
習題 306
第12章 使用第三方類庫 307
12.1 Maven構建工具 307
12.1.1 Maven倉庫 308
12.1.2 Maven項目結構 309
12.1.3 簡單Maven項目實例 309
12.2 常用的第三方類庫 313
12.3 使用JSON數據 314
12.3.1 JSON基本語法 314
12.3.2 JSON數據解析與生成 314
12.4 使用統計圖 318
12.5 處理Word文件 324
習題 328
參考文獻 330



