Java入門1.2.3—一個老鳥的Java學習心得
基本資料
作者: 臧萌
出版社:清華大學出版社
ISBN:9787302217831
上架時間:2010-3-30
出版日期:2010 年3月
開本:16開
其他詳細資料查看:http://www.china-pub.com/196571
編輯精選
Java編程老鳥潛心寫作,奉獻高效率的Java學習心得
完全站在沒有編程經驗讀者的角度,手把手教會讀者學習Java
配16小時多媒體教學視頻,高效、直觀
一一擊破Java入門可能會遇到的痛點和疑惑
抽絲剝繭,層層推進,讓知識環環相扣,降低了學習的難度
通過大量的比喻、類比、對比和圖示等多種講解方式,學習效果好
對Java語言的每個文法都提供了一個或多個常式講解
大量使用流程圖表示程式的執行過程,使用結構圖表示程式的內部狀態
每章最後都給出了典型的練習題,讓讀者及時練習,鞏固提高,並提供了參考答案
目錄
第1篇 Java語言基本文法
第1章 讓自己的第一個Java程式跑起來 2
教學視頻:19分鐘
1.1 想要用Java改變這個世界嗎? 2
1.1.1 Java有什麼優勢? 2
1.1.2 Java在哪兒? 3
1.2 準備好開始Java之旅 3
1.2.1 下載JDK 4
1.2.2 安裝JDK 5
1.2.3 配置環境變數 6
1.2.4 測試環境是否安裝成功 8
1.2.5 如果失敗了怎麼辦? 9
1.3 讓自己的第一個程式運行起來 10
1.3.1 編寫自己的Hello World來源程式 10
1.3.2 編譯自己的HelloWorld程式 11
1.3.3 讓代碼運行起來 13
1.4 初探Hello World 14
1.4.1 類(Class):Java世界中一類物體 14
1.4.2 方法(Method):物體的功能 15
1.4.3 main()方法:所有Java程式執行的起點 15
.1.5 名詞解釋 16
1.5.1 JDK和Java平台 16
1.5.2 Java編譯器(Java Compiler) 17
1.5.3 Java類庫(Java Class Libraries) 17
1.5.4 Java虛擬機器(Java Virtual Machine) 17
1.5.5 HelloWorld的整個流程 17
1.6 小結:我們學會了編譯和運行一個Java程式! 18
1.7 習題 19
第2章 搭建自己的整合式開發環境 20
教學視頻:31分鐘
2.1 安裝整合式開發環境 20
2.1.1 整合式開發環境有哪些 20
2.1.2 安裝Eclipse 21
2.2 Eclipse介面介紹 23
2.2.1 啟動Eclipse 23
2.2.2 Eclipse的Perspective 24
2.2.3 Eclipse的菜單 25
2.2.4 Eclipse的工具條 25
2.2.5 Eclipse輔助視圖區 25
2.2.6 Eclipse中Package Explorer 26
2.2.7 Eclipse中的原始碼編輯器 26
2.2.8 Eclipse的設定視窗 26
2.2.9 Eclipse中的其他視圖 27
2.3 如何使用Eclipse 28
2.3.1 在Eclipse中建立自己的第一個項目 28
2.3.2 在Eclipse中編寫HelloWorld程式 29
2.3.3 通過Eclipse運行Hello World 31
2.4 小結:Eclipse——功能很強大 32
2.5 習題 32
第3章 Java中的基礎資料型別 (Elementary Data Type)和運算子 33
教學視頻:1小時5分鐘
3.1 Java中的基礎資料型別 (Elementary Data Type) 33
3.1.1 基礎資料型別 (Elementary Data Type)——程式設計語言中的資料原子 33
3.1.2 Java中的基本上資料類型介紹 34
3.1.3 基礎資料型別 (Elementary Data Type)範圍 34
3.2 Java運算子 36
3.2.1 變數的概念 36
3.2.2 插曲:Java中的語句 37
3.2.3 建立一個變數和變數名的規範 37
3.2.4 Java中的基本運算子和運算式 39
3.2.5 Java中的布林運算子 43
3.3 基礎資料型別 (Elementary Data Type)運算的痛點 47
3.3.1 強制類型轉換——小數哪裡去了 48
3.3.2 類型的轉換在運算中悄悄進行 50
3.3.3 強制類型轉換最優先 52
3.3.4 等號其實不簡單 52
3.3.5 小心使用浮點數進行比較 53
3.3.6 boolean和char 55
3.3.7 不要使用還沒有建立出來的變數 57
3.3.8 String——char串起的項鏈 58
3.3.9 轉義符——看不見寫得出 61
3.4 小結:基礎資料型別 (Elementary Data Type)—— Java中一切資料和運算的基礎 63
3.5 習題 65
第4章 Java中的程式執行流程 67
教學視頻:1小時57分鐘
4.1 順序執行 67
4.2 使用if-else讓程式懂得判斷 68
4.2.1 if語句 68
4.2.2 if語句的嵌套 71
4.2.3 if-else語句 73
4.2.4 if-else語句嵌套 75
4.3 使用while進行迴圈 76
4.3.1 使用while語句 76
4.3.2 使用do-while語句 79
4.4 使用for進行迴圈 80
4.4.1 自增和自減操作 80
4.4.2 for語句 82
4.4.3 for語句省略形式 84
4.5 語句中不能不說的事 84
4.5.1 小心複雜語句中建立的變數 85
4.5.2 別讓迴圈次數給弄懵了 86
4.5.3 迴圈的嵌套 87
4.6 continue關鍵字與break關鍵字 88
4.6.1 continue關鍵字 88
4.6.2 break關鍵字 89
4.7 使用switch進行跳轉 90
4.8 大例子 94
4.8.1 從控制台讀取資料 94
4.8.2 結賬程式中的迴圈 96
4.9 小結:Java不是一個直腸子 98
4.10 習題 99
第5章 數組 100
教學視頻:35分鐘
5.1 什麼是數組 100
5.1.1 假設:如果需要逐個定義變數 100
5.1.2 數組初探 101
5.1.3 數組——物以類聚 104
5.1.4 數組元素的值內有乾坤 105
5.1.5 建立數組的簡潔文法 106
5.2 數組的“名”與“實” 107
5.2.1 “名”與“實”分離的數組 107
5.2.2 一“實”多“名”的數組 109
5.2.3 一“實”多“名”帶來的困惑 111
5.3 多維陣列 114
5.3.1 什麼是多維陣列 114
5.3.2 多維陣列的實質 115
5.4 數組大練兵 123
5.4.1 輕鬆查詢全班成績 123
5.4.2 輕鬆查詢全校成績不在話下 124
5.4.3 楊輝三角 125
5.5 小結:方便快速的數組 129
5.6 習題 129
第2篇 Java語言進階文法
第6章 Java的類(Class)和對象(Object) 132
教學視頻:59分鐘
6.1 駕駛汽車向類(Class)的世界進發 132
6.1.1 汽車帶來的問題 132
6.1.1 類的組成 134
6.1.3 使用自訂的Car類 136
6.1.4 類和對象 139
6.1.5 源檔案的存放 141
6.1.5 理解引用 143
6.1.7 null關鍵字 145
6.2 巧妙使用類中的屬性 147
6.2.1 在類中給每個變數一個初始值 147
6.2.2 定義自己的引用 147
6.2.3 使用點操作符的技巧 148
6.2.4 類的數組 149
6.3 小結:Java其實是個類和對象的世界 152
6.4 習題 153
第7章 Java中的方法——給汽車豐富多彩的功能 154
教學視頻:2小時55分鐘
7.1 方法:讓汽車動開動 154
7.1.1 引出問題:開動汽車 154
7.1.2 那麼,方法到底是什麼呢? 155
7.1.3 方法調用過程初探 156
7.2 Java普通方法的組成部分 157
7.2.1 存取控制符:public 158
7.2.2 傳回值和關鍵字void 158
7.2.3 方法名(Method Name) 159
7.2.4 參數列表(Parameter List) 159
7.2.5 方法體(Method Body) 160
7.2.6 方法串串燒 160
7.3 方法的參數:讓汽車加速 161
7.3.1 方法的參數:讓汽車可以加速 161
7.3.2 帶參數的方法有何不同? 162
7.3.3 讓方法有多個參數 163
7.4 傳回值:汽車超速了嗎? 164
7.4.1 寫一個有傳回值的方法 164
7.4.2 調用有傳回值的方法 165
7.4.3 發生了什嗎?如何使用方法的傳回值? 166
7.4.4 使用return結束方法 166
7.5 方法重載(overload):給汽車加速添個限制 168
7.5.1 什麼是方法的簽名 168
7.5.2 什麼是重載?為什麼要重載? 168
7.5.3 給汽車加個重載的方法 169
7.5.4 測試一下 169
7.5.5 重載容易引發誤解的兩個地方——傳回型別和形參名 170
7.5.6 重載中的最痛點——參數匹配原則 171
7.6 使用類的執行個體作為方法參數 172
7.6.1 超車方法:使用類執行個體做參數 172
7.6.2 調用這個方法 173
7.6.3 發生了什麼 174
7.7 加餐:局部變數和執行個體變數 175
7.7.1 什麼是局部變數(Local Variable) 175
7.7.2 什麼是執行個體變數(Instance Variable) 177
7.8 this關鍵字:指向對象自己的引用 177
7.8.1 發現問題:當執行個體變數和局部變數重名 177
7.8.2 經常深藏不露的this關鍵字 178
7.8.3 在方法中調用方法 179
7.9 構造方法(Constructor) 181
7.9.1 構造(Constructor)方法初探 181
7.9.2 如何使用構造方法 182
7.9.3 留個無參數的構造方法——給重要屬性賦初始值 183
7.9.4 在構造方法中調用構造方法 184
7.10 方法大匯總 185
7.10.1 本例中用到的類 186
7.10.2 使用常式將本章的知識穿起來 189
7.11 小結:多方位理解Java方法 191
7.12 習題 192
第8章 Java中的包(Package)命名習慣和注釋 193
教學視頻:43分鐘
8.1 Java中的包(Package) 193
8.1.1 Java中的包 193
8.1.2 在Eclipse中使用包 194
8.1.3 天上掉下個package 197
8.1.4 包帶來了什嗎? 197
8.2 import語句:化繁為簡 200
8.2.1 import語句 200
8.2.2 一網打盡包中所有類 201
8.2.3 import語句帶來的小問題 202
8.2.4 預設引入的包 204
8.3 命名習慣大回顧 204
8.4 Java中的注釋 205
8.4.1 使用雙斜杠的單行注釋 205
8.4.2 多行注釋 206
8.4.3 Javadoc注釋 206
8.5 小結:包讓Java的類更清晰優雅 208
8.6 習題 209
第9章 再看數組、字串和main()方法 210
教學視頻:29分鐘
9.1 數組也是類 210
9.1.1 得到數組的長度 210
9.1.2 加餐:不可改變的final變數 211
9.1.3 多維陣列的長度 212
9.1.4 一維數組的clone()方法 212
9.1.5 當數群組類型不再是基礎資料型別 (Elementary Data Type) 214
9.1.6 多維陣列的clone()方法 217
9.2 老朋友String類 220
9.2.1 遍曆String中的字元 220
9.2.2 擷取字串中的一部分 222
9.2.3 判斷兩個字串是否相等 223
9.2.4 判斷字串的開頭和結尾 225
9.2.5 分割字串 225
9.2.6 在字串中尋找子字串或字元 226
9.2.7 替換字串中的內容 226
9.2.8 String對象——磐石刻字 227
9.3 String類的最佳拍檔——StringBuffer類 227
9.3.1 StringBuffer:專業操縱字元 228
9.3.2 String和StringBuffer一個都不能少 229
9.4 最熟悉的陌生人:main()方法 229
9.4.1 main()方法的參數 229
9.4.2 static關鍵字 232
9.4.3 當方法遇到static關鍵字 233
9.5 小結:學會使用類中的方法 235
9.6 習題 236
第10章 繼承和多態 237
教學視頻:1小時55分鐘
10.1 繼承——最優的解決方案 237
10.1.1 飯前水果:執行個體變數的存取控制符 237
10.1.2 一切還是從汽車開始 238
10.1.3 一類車,一個類 241
10.1.4 分開也有麻煩 244
10.1.5 使用繼承——問題迎刃而解 245
10.1.6 使用Bus類 248
10.1.7 Java中的單繼承 248
10.1.8 Java中的類圖 249
10.1.9 萬類之祖——Object類 250
10.2 子類對象?父類對象? 251
10.2.1 父隨子行 251
10.2.2 當構造方法遇到繼承 254
10.2.3 記得給類一個無參數的構造方法 255
10.2.4 調用父類中的構造方法 256
10.2.5 對象也會“變臉” 258
10.2.6 遵守文法,正確“變臉” 262
10.3 覆蓋——與繼承如影隨形 264
10.3.1 當方法不再通用 264
10.3.2 覆蓋——讓眾口不再難調 265
10.3.3 覆蓋——到底調用了哪個方法 270
10.3.4 覆蓋的文法不簡單 272
10.3.5 更複雜的使用覆蓋的情況 274
10.3.6 覆蓋——不得不開啟的潘多拉魔盒 276
10.3.7 使用super調用父類中的方法和屬性 278
10.4 多態(Polymorphism)以及其他 279
10.4.1 多態——運行方知結果 280
10.4.2 重載也不簡單 280
10.4.3 使用多態構建車隊 283
10.5 在多態的環境中撥開迷霧 284
10.5.1 神秘的Class類 284
10.5.2 覆蓋不再神秘 285
10.5.3 instanceof運算子——讓對象告訴你它的類是誰 286
10.6 小結:繼承和多態讓世界豐富多彩 287
10.7 習題 290
第11章 修飾符(Qualifier) 291
教學視頻:26分鐘
11.1 插曲:類的組成部分的名字 291
11.2 類中的修飾符 292
11.2.1 無修飾符類 292
11.2.2 類的可見度 293
11.2.3 final——讓類不可被繼承 295
11.2.4 理解final關鍵字 296
11.2.5 總結:類的修飾符 297
11.3 方法的修飾符 297
11.3.1 方法的存取控制符 298
11.3.2 public:沒有限制的修飾符 299
11.3.3 protected:僅對子類和同包的類可見 300
11.3.4 預設控制符:僅在本包中可見 301
11.3.5 private:僅對本類可見 303
11.3.6 理解4個存取控制符 304
11.3.7 存取控制符可見度匯總 306
11.3.8 存取控制符帶來的覆蓋問題 306
11.3.9 final:不允許方法被覆蓋 310
11.3.10 重溫靜態方法 311
11.3.11 靜態方法——類範圍裡的概念 312
11.3.12 靜態方法何以為“靜態” 314
11.4 變數的修飾符 316
11.4.1 變數方法皆成員 317
11.4.2 變數的存取控制符 317
11.4.3 使用private修飾類的成員變數 318
11.4.4 使用private,然後呢? 320
11.4.5 變數的覆蓋 322
11.4.6 使用final修飾成員變數 325
11.4.7 靜態成員變數 326
11.4.8 局部變數的修飾符 326
11.4.9 當final遇到參考型別成員變數 327
11.5 小結:修飾符作用大 328
11.6 習題 330
第12章 介面 331
教學視頻:29分鐘
12.1 單車帶來的問題 331
12.1.1 記錄馬路上的車輛 331
12.1.2 引發問題的單車 335
12.1.3 仔細分析recordTransport()方法 338
12.2 初用介面 339
12.2.1 準備好需要用到的類 339
12.2.2 認識介面的程式碼群組成 340
12.2.3 什麼是介面 341
12.2.4 使用介面僅需一步——實現介面 342
12.2.5 介面——讓類集多重類型於一身 344
12.2.6 簡化recordTransport()方法 347
12.3 再探介面 349
12.3.1 重溫上節中的程式 349
12.3.2 面向介面編程 351
12.3.3 話說“抽象” 353
12.3.4 介面大瘦身 355
12.3.5 實現多個介面 355
12.3.6 介面中的變數 357
12.3.7 介面的繼承 358
12.3.8 匹配抽象方法中的類型 359
12.3.9 空介面 361
12.4 小結:介面的痛點在於何時使用 362
12.5 習題 364
第13章 抽象類別和內部類 365
教學視頻:26分鐘
13.1 抽象類別(Abstract Class) 365
13.1.1 不知道怎麼打招呼的Person類 365
13.1.2 當類中有了抽象方法 367
13.1.3 抽象類別文法詳解 368
13.1.4 理解抽象類別的作用 369
13.2 內部類的分類(Inner Class) 370
13.2.1 成員內部類 370
13.2.2 局部內部類 372
13.3 成員內部類 374
13.3.1 使用成員內部類 374
13.3.2 成員內部類的修飾符 375
13.3.3 在類外部使用內部類 376
13.3.4 非靜態內部類的特性 378
13.3.5 外部類訪問成員內部類中的屬性 382
13.3.6 靜態成員內部類 383
13.4 局部內部類 384
13.4.1 局部內部類之“局部” 385
13.4.2 局部內部類之“內部類” 386
13.4.3 使用局部內部類 388
13.5 匿名內部類(Anonymous inner classes) 389
13.5.1 準備工作 389
13.5.2 匿名內部類的文法 389
13.5.3 通過介面使用匿名類 390
13.5.4 通過抽象類別使用匿名類 391
13.6 類,這樣一路走來 391
13.7 小結:豐富多彩的類 395
13.8 習題 397
第14章 Java的異常處理機制 398
教學視頻:36分鐘
14.1 認識異常 398
14.1.1 異常什麼時候發生 398
14.1.2 異常是什麼 401
14.1.3 Java異常機制的流程 401
14.2 拋出異常 403
14.2.1 異常類的父類——Throwable 403
14.2.2 在代碼中使用throw拋出一個異常 404
14.2.3 在方法聲明中使用throws 407
14.2.4 構造自訂異常類 409
14.2.5 使用自訂異常類 410
14.3 異常的傳遞 411
14.3.1 拋出最確切的異常類型 411
14.3.2 Java異常的傳遞 412
14.3.3 圖說Java異常的傳遞 414
14.4 異常的處理 418
14.4.1 把異常捉住 418
14.4.2 圖說異常處理流程 421
14.4.3 多類異常,一併處理 424
14.4.4 try-catch-finally語句 426
14.4.5 try-finally語句 431
14.4.6 好好利用catch語句 432
14.5 異常的類型 433
14.5.1 3個類的繼承關係 433
14.5.2 必須處理的Exception類 434
14.5.3 靈活掌握的RuntimeException類 434
14.5.4 不用處理的Error類 435
14.6 小結:終止錯誤的蔓延 435
14.7 習題 437
第15章 多線程編程 438
教學視頻:1小時14分鐘
15.1 線程——執行代碼的機器 438
15.1.1 線程——執行代碼的基本單位 438
15.1.2 演奏會模型 440
15.2 Java中的線程編程 443
15.2.1 線程類Thread 443
15.2.2 覆蓋Thread類的run()方法 444
15.2.3 使用Runnable介面 446
15.2.4 兩個線程 448
15.3 深入學習Thread類 449
15.3.1 線程的名字 449
15.3.2 得到當前的線程 451
15.3.3 讓線程“沉睡” 453
15.4 多個線程的故事 457
15.4.1 一個有多個線程的程式 457
15.4.2 複印社模型 459
15.4.3 一個簡單的複印社常式 461
15.5 多個線程的同步 463
15.5.1 線程同步之synchronized關鍵字 463
15.5.2 深入學習synchronized關鍵字 468
15.5.3 靜態同步方法 469
15.5.4 非靜態同步方法 472
15.5.5 銀行的麻煩——賬戶亂套了 474
15.5.6 多角度理解同步方法 481
15.5.7 閑話同步方法的使用 484
15.5.8 同步代碼塊 485
15.5.9 鎖(Lock) 486
15.5.10 線程同步之wait()和notify()方法 488
15.5.11 wait和notify的順序 491
15.6 小結:線程——代碼執行器 494
15.7 習題 495
第3篇 Java語言編程進階
第16章 如何學習本篇 498
教學視頻:15分鐘
16.1 多想多寫多練 498
16.2 術業有專攻 498
16.3 拆分問題,逐個擊破 500
16.4 閱讀Javadoc 500
16.5 小結:大練兵馬上開始 506
16.6 習題 507
第17章 編程常用知識 508
教學視頻:18分鐘
17.1 再談對象的比較 508
17.1.1 hashcode()方法 508
17.1.2 equals()方法 509
17.1.3 對象的比較equals()方法 509
17.2 Java中的集合類架構 510
17.2.1 集合類架構中的介面 510
17.2.2 List介面 511
17.2.3 使用ArrayList 512
17.2.4 Set介面 516
17.2.5 使用HashSet類 517
17.2.6 List與Set 518
17.3 泛型簡介 518
17.3.1 沒有泛型時的程式 519
17.3.2 使用泛型——避免強制類型轉 520
17.4 Map介面 522
17.4.1 認識Map 522
17.4.2 使用HashMap 523
17.5 字元集和編碼 524
17.5.1 字元集 524
17.5.2 編碼 525
17.5.3 關於字元集的小程式 526
17.6 小結:編程需要打好基礎 529
17.7 習題 530
第18章 Java檔案編程和Java檔案I/O 531
教學視頻:9分鐘
18.1 Java中的檔案編程 531
18.1.1 File類 531
18.1.2 建立和刪除檔案 532
18.1.3 列出檔案和檔案夾 533
18.1.4 重新命名檔案 535
18.2 Java的I/O編程 536
18.2.1 理解Java中的Stream 536
18.2.2 向檔案中寫入資料 538
18.2.3 從檔案中讀取資料 539
18.2.4 從控制台讀取資料 541
18.2.5 使用輸出資料流寫入資料 543
18.2.6 使用輸入資料流讀取資料 545
18.3 小結:Java中的檔案類和輸入輸出機制 546
18.4 習題 547
第19章 Java Socket編程 548
教學視頻:8分鐘
19.1 IP地址和連接埠號碼 548
19.1.1 IP地址——電腦的標識 548
19.1.2 連接埠號碼——通訊的視窗 549
19.1.3 網路,IP地址和連接埠號碼 551
19.2 Java TCP編程 551
19.2.1 資料轉送協議 552
19.2.2 TCP的資料轉送模式 552
19.2.3 第一個TCP小程式 553
19.3 Java UDP編程 557
19.3.1 UDP的資料轉送模式 557
19.3.2 使用UDP協議收發資料 558
19.3.3 TCP和UDP的區別 560
19.4 小結:讓程式伸向整個網路 561
19.5 習題 561
第20章 Java Swing編程 562
教學視頻:14分鐘
20.1 Java Swing編程簡介 562
20.1.1 圖形化使用者介面編程簡介 562
20.1.2 組件 563
20.1.3 布局管理器(Layout Manager) 563
20.1.4 事件處理(Event Handling) 564
20.2 Swing基本組件 565
20.2.1 視窗(JFrame) 565
20.2.2 Swing的線程 567
20.2.3 Swing組件的鼻祖——JComponent 567
20.2.4 Swing面板類 568
20.2.5 Swing中的標籤 568
20.2.6 Swing中的文字框 570
20.2.7 Swing中的文本域 571
20.2.8 Swing中的組合框 572
20.2.9 Swing中的按鈕 573
20.3 Swing的布局管理器 574
20.3.1 最簡單的FlowLayout 574
20.3.2 東南西北中之BorderLayout 574
20.3.3 平均分割之——GridLayout 576
20.3.4 最強大的布局管理器——GridBagLayout 577
20.3.5 使用多個布局管理器 579
20.4 Swing的事件處理 581
20.4.1 事件的傳遞和封裝 581
20.4.2 事件監聽器——事件的處理者 582
20.4.3 Swing事件處理的機制 584
20.4.4 事件監聽器的編寫 586
20.4.5 如何學習更多的事件 588
20.5 小結:從此不再依賴控制台 588
20.6 習題 588
第21章 編程,需要的是想象力和恒心 589
教學視頻:13分鐘
21.1 編程的前奏 589
21.1.1 細數手中的積木 589
21.1.2 發揮想象力 590
21.1.3 確定程式的功能 591
21.2 聊天視窗程式 591
21.2.1 聊天程式設計 591
21.2.2 設計程式運行效果 593
21.2.3 UDP訊息收發模組 595
21.2.4 圖形化使用者介面模組 598
21.2.5 訊息處理模組 600
21.2.6 一個更通用的聊天程式 601
21.3 小結:編程是必不可少的鍛煉 602
21.4 習題 602
第22章 JDBC入門 603
教學視頻:11分鐘
22.1 JDBC的基本API 603
22.1.1 JDBC是什麼 603
22.1.2 DriverManager——驅動管理器 605
22.1.3 Connection介面 606
22.1.4 Statement介面 606
22.1.5 PreparedStatement介面 606
22.1.6 ResultSet介面 607
22.1.7 JDBC-ODBC橋 607
22.2 一個操作資料庫的簡單程式 608
22.2.1 程式的執行結果 608
22.2.2 程式設計與模組劃分 609
22.2.3 準備好資料來源 610
22.2.4 資料庫操作模組的實現 610
22.2.5 圖形化使用者介面模組的實現 611
22.3 小結:強大的JDBC標準 613
22.4 習題 613