《Java 程式開發案例課堂》是清華大學出版社2019年出版的圖書,作者是劉春茂、李琪。
基本介紹
內容簡介,目錄,
內容簡介
《Java程式開發案例課堂》以零基礎講解為宗旨,用實例引導讀者深入學習,採取“基礎入門→核心技術→高級套用→項目開發實戰”的講解模式,深入淺出地講解Java的各項技術及實戰技能。
目錄
第I篇基礎入門
第1章揭開Java的神秘面紗——我的
第一個Java程式 3
1.1Java簡介 4
1.1.1了解Java語言 4
1.1.2Java語言的特性 4
1.1.3Java語言的核心技術 6
1.1.4Java語言的工作原理 7
1.2搭建Java環境 8
1.2.1JDK簡介 8
1.2.2JDK安裝 9
1.2.3JDK配置 12
1.2.4測試JDK 14
1.3第一個Java程式 14
1.4MyEclipse的安裝 16
1.4.1MyEclipse的下載 16
1.4.2MyEclipse的安裝 17
1.5MyEclipse的使用 18
1.5.1創建Java項目 18
1.5.2創建Java程式 19
1.5.3編寫Java程式 20
1.5.4運行Java程式 21
1.5.5調試Java程式 21
1.6如何學好Java 23
1.7大神解惑 24
1.8跟我學上機 24
第2章零基礎開始學習——Java基本
語法 25
2.1剖析第一個Java程式 26
2.2常量與變數 28
2.2.1常量 28
2.2.2變數 29
2.3數據類型 33
2.3.1整數型 34
2.3.2浮點型 36
2.3.3字元型 37
2.3.4布爾型 38
2.3.5類型轉換 39
2.4運算符 40
2.4.1賦值運算符 40
2.4.2算術運算符 41
2.4.3比較運算符 42
2.4.4條件運算符 43
2.4.5邏輯運算符 43
2.4.6位運算符 44
2.4.7自增和自減運算符 47
2.4.8運算符優先權 48
2.5流程控制 48
2.5.1分支控制 48
2.5.2循環控制 54
2.5.3跳轉語句 57
2.6Java代碼編寫規範 60
2.7大神解惑 62
2.8跟我學上機 62
第3章主流的編程思想——認識面向
對象編程 63
3.1面向對象簡介 64
3.1.1什麼是對象 64
3.1.2面向對象的特徵 64
3.2類和對象 65
3.2.1類 65
3.2.2對象 67
3.2.3構造方法 68
3.2.4instanceof關鍵字 70
3.3修飾符 70
3.3.1訪問修飾符 71
3.3.2非訪問修飾符 74
3.4封裝 78
3.4.1了解封裝 78
3.4.2封裝實現 78
3.4.3this關鍵字 79
3.5繼承 80
3.5.1了解繼承 80
3.5.2繼承實現 83
3.6多態 84
3.6.1了解多態 84
3.6.2重載 86
3.6.3重寫 88
3.6.4構造方法重載 90
3.6.5super關鍵字 92
3.7大神解惑 94
3.8跟我學上機 94
第4章嵌套類的秘密——Java的
內部類 95
4.1創建內部類 96
4.2連結到外部類 96
4.3成員內部類 98
4.4靜態內部類 99
4.5局部內部類 101
4.6匿名內部類 103
4.7大神解惑 104
4.8跟我學上機 104
第5章特殊的元素集合——數組
和方法 105
5.1數組的概念 106
5.2一維數組 106
5.2.1數組的聲明 106
5.2.2數組的記憶體分配 107
5.2.3數組的元素 107
5.2.4數組的賦值 108
5.3多維數組 108
5.3.1數組的聲明 108
5.3.2數組的記憶體分配 109
5.3.3數組的元素 109
5.3.4數組的賦值 110
5.3.5遍歷數組 111
5.4數組排序 112
5.4.1冒泡排序 112
5.4.2選擇排序 113
5.5數組在方法中的使用 114
5.6大神解惑 115
5.7跟我學上機 116
第6章不可不說的文本數據——
字元串 117
6.1String類的本質 118
6.2String的API套用 119
6.2.1獲取字元串長度 119
6.2.2去除字元串的空格 119
6.2.3字元串分割 120
6.2.4轉換大小寫 121
6.2.5字元串截取 122
6.2.6字元串連線 122
6.2.7字元串比較 124
6.2.8字元串查找 127
6.2.9字元串替換 128
6.3字元串解析 130
6.3.1正則表達式語法 130
6.3.2常用正則表達式 131
6.3.3正則表達式的實例 131
6.4字元串的類型轉換 132
6.4.1字元串轉換為數組 132
6.4.2基本數據類型轉換為字元串 133
6.4.3格式化字元串 134
6.5StringBuffer與StringBuilder 136
6.5.1介紹StringBuffer與
StringBuilder 136
6.5.2StringBuilder類的創建 136
6.5.3StringBuilder類的方法 137
6.5.4String、StringBuffer與
StringBuilder的區別 141
6.6Lambda表達式 142
6.7大神解惑 143
6.8跟我學上機 144
第II篇核心技術
第7章銜接更便利——抽象類
與接口 147
7.1抽象類和抽象方法 148
7.1.1抽象類 148
7.1.2抽象方法 149
7.2接口概述 150
7.2.1接口聲明 150
7.2.2接口默認方法 150
7.2.3接口與抽象類 151
7.3接口的多態 151
7.4抽象類和接口的實例 152
7.4.1抽象類的實例 152
7.4.2接口的實例 154
7.5集合框架 155
7.5.1接口和實現類 155
7.5.2Collection接口 156
7.5.3List接口 158
7.5.4Set接口 161
7.5.5Map接口 164
7.6大神解惑 166
7.7跟我學上機 166
第8章不可避免的問題——處理
異常 167
8.1異常的概念 168
8.2異常的分類 169
8.3捕獲異常 170
8.3.1捕獲異常結構 170
8.3.2try-catch語句 171
8.3.3多條catch語句 172
8.3.4finally語句 173
8.4聲明異常 174
8.5拋出異常 175
8.6自定義異常 176
8.7大神解惑 177
8.8跟我學上機 178
第9章與外界的交流——Java中的
輸入和輸出類型 179
9.1I/O簡介 180
9.1.1I/O分類 180
9.1.2預定義流 180
9.2檔案處理 181
9.2.1File類 181
9.2.2檔案操作 182
9.2.3目錄操作 183
9.3位元組流 184
9.4字元流 185
9.5節點流 186
9.5.1FileInputStream流 187
9.5.2FileOutputStream流 188
9.5.3FileReader流 190
9.5.4FileWriter流 191
9.6處理流 192
9.6.1緩衝流 192
9.6.2數據流 198
9.6.3轉換流 200
9.6.4Print流 202
9.6.5Object流 205
9.7大神解惑 208
9.8跟我學上機 208
第10章任務同時進行——Java中的
執行緒和並發 209
10.1執行緒簡介 210
10.1.1進程 210
10.1.2執行緒 210
10.1.3執行緒與進程的區別 210
10.2創建與啟動執行緒 211
10.2.1Thread類創建執行緒 211
10.2.2Runnable接口創建執行緒 211
10.2.3啟動執行緒 212
10.3執行緒的狀態與轉換 213
10.3.1執行緒狀態 213
10.3.2執行緒狀態轉換 214
10.4執行緒的同步 217
10.4.1執行緒安全問題 217
10.4.2synchronized關鍵字 218
10.4.3死鎖問題 219
10.5執行緒互動 223
10.5.1wait()方法和notify()方法 223
10.5.2生產者—消費者問題 223
10.6執行緒的調度 226
10.6.1執行緒調度原理 226
10.6.2執行緒的優先權 226
10.7大神解惑 227
10.8跟我學上機 228
第11章編譯時再審查——Java中的
泛型 229
11.1Java與C++中的泛型 230
11.2簡單泛型 230
11.3類型推導與泛型類和接口 231
11.3.1類型推導 231
11.3.2泛型類 232
11.3.3泛型接口 233
11.4類型推導與泛型方法 234
11.5類型通配符 235
11.6Java8泛型新特性 237
11.6.1方法與構造方法引用 237
11.6.2Lambda作用域 238
11.7大神解惑 240
11.8跟我學上機 240
第12章自檢更靈活——Java中的
反射 241
12.1反射概述 242
12.2Java反射API 242
12.3Class類 242
12.3.1獲取Class對象 243
12.3.2Class類常用方法 243
12.4生成對象 246
12.4.1無參數構造方法 246
12.4.2帶參數構造方法 246
12.5Method類 247
12.6Field類 249
12.7數組 251
12.8獲取泛型信息 252
12.9大神解惑 253
12.10跟我學上機 254
第13章簡化程式的配置——Java中的
註解 255
13.1註解概述 256
13.2JDK內置註解 256
13.2.1 Override 256
13.2.2 Deprecated 257
13.2.3 SuppressWarnings 258
13.3自定義註解 258
13.3.1自定義註解 258
13.3.2註解元素的默認值 259
13.4元註解 260
13.4.1 Target 260
13.4.2 Retention 261
13.4.3 Documented 262
13.4.4 Inherited 262
13.5使用反射處理註解 263
13.6JDK1.8新特性 265
13.6.1多重註解 265
13.6.2ElementType枚舉類 265
13.6.3函式式接口 266
13.7大神解惑 267
13.8跟我學上機 268
第14章特殊的數據集合——枚舉
類型 269
14.1枚舉聲明 270
14.2枚舉的使用 270
14.2.1枚舉類常用方法 270
14.2.2添加屬性和方法 271
14.2.3枚舉在switch中的使用 273
14.3EnumSet和EnumMap 274
14.4大神解惑 276
14.5跟我學上機 276
第III篇高級套用
第15章Java的資料庫編程——JDBC
編程 279
15.1JDBC概述 280
15.1.1JDBC原理 280
15.1.2JDBC驅動 281
15.2連線資料庫 281
15.2.1引入jar包 282
15.2.2連線資料庫步驟 284
15.2.3JDBC入門實例 284
15.3驅動管理器類 285
15.3.1載入JDBC驅動 285
15.3.2DriverManager類 286
15.4資料庫連線接口 287
15.4.1常用方法 287
15.4.2處理元數據 287
15.5執行SQL語句的接口 289
15.5.1Statement接口 289
15.5.2PreparedStatement接口 292
15.5.3CallableStatement接口 293
15.6結果集接口 295
15.7實戰——學生信息管理 297
15.7.1創建表student 297
15.7.2連線資料庫 298
15.7.3插入數據 298
15.7.4刪除數據 299
15.7.5修改數據 301
15.7.6查詢數據 302
15.8大神解惑 303
15.9跟我學上機 304
第16章設計圖形界面設計——Swing
技術 305
16.1Swing基礎 306
16.2Swing容器 306
16.2.1JFrame窗體 306
16.2.2JPanel面板 309
16.3Swing的組件 310
16.3.1按鈕JButton 310
16.3.2標籤JLabel 312
16.3.3複選框JCheckBox 313
16.3.4單選按鈕JRadioButton 315
16.3.5單行文本框JTextField 316
16.3.6密碼文本框JPasswordField 318
16.3.7多行文本框JTextArea 319
16.3.8下拉列表JComboBox 321
16.3.9列表框JList 322
16.3.10選單 323
16.4布局管理 325
16.4.1流式布局管理器 326
16.4.2框線布局管理器 327
16.4.3格線布局管理器 328
16.4.4格線組布局管理器 329
16.4.5卡片布局管理器 331
16.5Swing事件模型 333
16.5.1事件處理模型 333
16.5.2事件類 334
16.5.3事件監聽器 335
16.5.4事件適配器 339
16.6Swing高級組件 340
16.6.1Swing的表格組件 340
16.6.2Swing的樹組件 343
16.7大神解惑 346
16.8跟我學上機 346
第17章多媒體開發技術——AWT繪圖
與音頻 347
17.1Java繪圖 348
17.1.1繪圖方法 348
17.1.2Graphics類 348
17.1.3Graphics2D類 350
17.1.4設定繪圖顏色 351
17.1.5設定筆畫屬性 353
17.2繪文本 356
17.2.1設定字型 356
17.2.2繪製文本 356
17.3繪製圖片 358
17.4圖像處理 359
17.4.1圖像放大或縮小 359
17.4.2圖像傾斜 359
17.4.3圖像旋轉 361
17.4.4圖像翻轉 363
17.5播放音頻 365
17.6大神解惑 368
17.7跟我學上機 368
第18章融入網際網路時代——Java的
網路編程 369
18.1網路編程基礎 370
18.1.1網路編程基礎概念 370
18.1.2網路協定 371
18.2TCP網路編程 372
18.2.1InetAdress類 372
18.2.2Socket類 373
18.2.3ServerSocket類 374
18.2.4TCP網路程式 375
18.2.5小型聊天室 376
18.3UDP網路編程 382
18.3.1DatagramSocket類 382
18.3.2DatagramPacket類 383
18.3.3UDP網路程式 384
18.3.4數據廣播 386
18.4大神解惑 390
18.5跟我學上機 390
第19章常用工具類——API編程
技術 391
19.1Runtime類 392
19.1.1Runtime類方法 392
19.1.2記憶體管理 393
19.1.3ecec()方法 394
19.2包裝類 394
19.2.1基本數據類型的包裝類 395
19.2.2Boolean類 395
19.2.3Character類 397
19.2.4整型包裝類 398
19.2.5Double和Float類 400
19.3日期操作類 403
19.3.1Date類 403
19.3.2Calendar類 404
19.3.3DateFormat類 406
19.3.4SimpleDateFormat類 408
19.4數學類 410
19.5高手甜點 412
19.6跟我學上機 412
第20章工程師的秘密——UML與設計
模式 413
20.1UML類圖 414
20.1.1類圖和類之間關係 414
20.1.2泛化關係 415
20.1.3實現關係 416
20.1.4依賴關係 417
20.1.5關聯關係 418
20.2設計模式 421
20.2.1設計模式分類 421
20.2.2單例模式 422
20.2.3工廠模式 422
20.2.4代理模式 424
20.2.5觀察者模式 425
20.2.6適配器模式 427
20.3大神解惑 430
20.4跟我學上機 430
第21章連線印表機——Java的列印
技術 431
21.1列印控制類 432
21.1.1PrinterJob類的方法 432
21.1.2【列印】對話框 433
21.2列印頁面 435
21.3多頁列印 437
21.4列印預覽 439
21.5大神解惑 442
21.6跟我學上機 442
第IV篇項目開發實戰
第22章管理開發項目——ANT工具的
使用 445
22.1ANT簡介 446
22.1.1ANT任務類型 446
22.1.2項目層次結構 446
22.1.3ANT構建檔案 446
22.2為什麼要使用ANT 447
22.3下載安裝ANT 448
22.3.1下載ANT 448
22.3.2安裝ANT 448
22.4ANT關鍵元素 449
22.5ANT常用任務 454
22.6使用ANT構建項目 458
22.7大神解惑 460
22.8跟我學上機 460
第23章人工智慧套用——開發購物
推薦系統 461
23.1開發背景 462
23.2需求及功能分析 463
23.2.1需求分析 463
23.2.2功能分析 463
23.3系統代碼編寫 465
23.3.1推薦系統主程式 465
23.3.2讀取機器學習數據 471
23.3.3計算行之間相似性 473
23.3.4計算數組相似性 474
23.3.5讀取測試數據 476
23.4系統運行 477
第24章遊戲休閒套用——開發氣球射擊
遊戲 479
24.1遊戲簡介 480
24.2需求及功能分析 480
24.2.1需求分析 480
24.2.2功能分析 481
24.3資料庫設計 482
24.4系統代碼編寫 482
24.4.1主程式模組 483
24.4.2移動對象的抽象類 487
24.4.3槍 488
24.4.4子彈 490
24.4.5氣球 491
24.4.6對象的畫圖 492
24.4.7對象的移動 494
24.4.8氣球的變化 495
24.4.9檢查遊戲狀況 496
24.4.10參數接口 498
24.4.11資料庫類 499
24.5系統運行 501
第25章娛樂影視套用——開發電影訂票
系統 503
25.1需求分析 504
25.2功能分析 504
25.3資料庫設計 505
25.3.1電影信息 506
25.3.2放映信息 506
25.3.3用戶訂單信息 506
25.3.4管理員賬號 507
25.4系統代碼編寫 507
25.4.1系統對象模組 507
25.4.2歡迎界面模組 513
25.4.3前台訂票模組 516
25.4.4後台管理模組 525
25.4.5資料庫模組 564
25.4.6輔助處理模組 578
25.5系統運行 583
25.5.1歡迎界面 583
25.5.2後台管理界面 583
25.5.3前台訂票界面 585