Java程序設計精編教程(微課視頻·題庫版)(第5版)

耿祥義、張躍平

  • 出版商: 清華大學
  • 出版日期: 2026-06-01
  • 定價: $299
  • 售價: $298
  • 語言: 簡體中文
  • ISBN: 7302718407
  • ISBN-13: 9787302718406
  • 相關分類: Java 程式語言
  • 下單後立即進貨 (約4週~6週)

  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-1
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-2
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-3
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-4
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-5
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-6
  • Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-7
Java程序設計精編教程(微課視頻·題庫版)(第5版)-preview-1

商品描述

Java語言具有面向對象、與平臺無關、安全、穩定和多線程等優良特性,是目前軟件設計中極為強大的編程語言,特別適合網絡應用程序的設計,已經成為網絡時代最重要的語言之一。本書精選Java核心內容,註重結合實例,循序漸進地向讀者介紹Java語言的核心內容,在基礎語言上強調Java面向對象編程的思想,在實用類上側重應用。全書分為14章,分別講解簡單數據類型、運算符、表達式與語句、類與對象、子類與繼承、接口與實現、內部類與異常類、常用實用類、輸入輸出流、組件與事件處理、Java多線程機制、Java網絡編程、綜合實訓等內容。 本書使用的JDK版本是JDK 17,提供30小時的微課視頻。 本書可作為高等院校計算機專業Java語言程序設計的教材,也可供想掌握Java核心內容的自學者參考。

目錄大綱

第 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