定 價(jià):¥128.00
作 者: | 關(guān)東升 |
出版社: | 清華大學(xué)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787302505310 | 出版時(shí)間: | 2018-08-01 | 包裝: | |
開本: | 頁(yè)數(shù): | 字?jǐn)?shù): |
推薦序 1
前言 3
配套資源說明 6
學(xué)習(xí)路線圖 7
內(nèi)容說明 9
第1篇 Kotlin基礎(chǔ)
本篇視頻:454分鐘
第1章 開篇綜述 2
本章視頻:33分鐘
1.1 Kotlin語(yǔ)言簡(jiǎn)介 2
1.1.1 Kotlin語(yǔ)言歷史 2
1.1.2 Kotlin語(yǔ)言設(shè)計(jì)目標(biāo) 2
1.2 Kotlin語(yǔ)言特點(diǎn) 3
1.3 Kotlin與Java虛擬機(jī) 4
1.3.1 Java虛擬機(jī) 4
1.3.2 Kotlin應(yīng)用程序運(yùn)行過程 5
1.4 如何獲得幫助 5
第2章 開發(fā)環(huán)境搭建 8
本章視頻:25分鐘
2.1 JDK工具包 8
2.1.1 JDK下載和安裝 8
2.1.2 設(shè)置環(huán)境變量 10
2.2 IntelliJ IDEA開發(fā)工具 12
2.3 Eclipse開發(fā)工具 13
2.3.1 Eclipse下載和安裝 13
2.3.2 安裝Kotlin插件 17
2.4 Kotlin編譯器 18
2.4.1 下載Kotlin編譯器 18
2.4.2 設(shè)置Kotlin編譯器環(huán)境變量 19
2.5 文本編輯工具 20
2.5.1 在Sublime Text中安裝Kotlin語(yǔ)言包 20
2.5.2 Sublime Text與Kotlin編譯器集成 21
第3章 第一個(gè)Kotlin程序 25
本章視頻:22分鐘
3.1 使用REPL實(shí)現(xiàn) 25
3.2 使用IntelliJ IDEA實(shí)現(xiàn) 26
3.2.1 創(chuàng)建項(xiàng)目 26
3.2.2 創(chuàng)建Kotlin源代碼文件 28
3.2.3 編寫代碼 29
3.2.4 運(yùn)行程序 30
3.3 使用IntelliJ IDEA與Gradle實(shí)現(xiàn) 30
3.4 使用Eclipse與Kotlin插件實(shí)現(xiàn) 33
3.4.1 創(chuàng)建項(xiàng)目 33
3.4.2 創(chuàng)建Kotlin源代碼文件 34
3.4.3 運(yùn)行程序 35
3.5 使用文本編輯工具與Kotlin編譯器實(shí)現(xiàn) 37
3.5.1 編寫代碼 37
3.5.2 編譯程序 37
3.5.3 運(yùn)行程序 39
3.6 代碼解釋 39
第4章 Kotlin語(yǔ)法基礎(chǔ) 41
本章視頻:52分鐘
4.1 標(biāo)識(shí)符和關(guān)鍵字 41
4.1.1 標(biāo)識(shí)符 41
4.1.2 關(guān)鍵字 42
4.2 變量和常量 43
4.2.1 變量 43
4.2.2 常量和只讀變量 44
4.2.3 使用var還是val 45
4.3 注釋 46
4.4 語(yǔ)句與表達(dá)式 47
4.4.1 語(yǔ)句 48
4.4.2 表達(dá)式 48
4.5 包 49
4.5.1 包的作用 49
4.5.2 包的定義 50
4.5.3 包的引入 51
第5章 Kotlin編碼規(guī)范 53
本章視頻:49分鐘
5.1 命名規(guī)范 53
5.2 注釋規(guī)范 55
5.2.1 文件注釋 55
5.2.2 文檔注釋 55
5.2.3 代碼注釋 58
5.2.4 使用地標(biāo)注釋 59
5.3 聲明 60
5.3.1 變量或常量聲明 60
5.3.2 類聲明 61
5.4 代碼排版 62
5.4.1 空行 62
5.4.2 空格 64
5.4.3 縮進(jìn) 65
5.4.4 斷行 65
5.5 省略規(guī)范 66
第6章 數(shù)據(jù)類型 68
本章視頻:45分鐘
6.1 回顧Java數(shù)據(jù)類型 68
6.2 Kotlin基本數(shù)據(jù)類型 69
6.2.1 整型類型 70
6.2.2 浮點(diǎn)類型 71
6.2.3 字符類型 72
6.2.4 布爾類型 74
6.3 數(shù)值類型之間的轉(zhuǎn)換 75
6.3.1 賦值與顯式轉(zhuǎn)換 75
6.3.2 數(shù)學(xué)計(jì)算與隱式轉(zhuǎn)換 77
6.4 可空類型 77
6.4.1 可空類型概念 78
6.4.2 使用安全調(diào)用運(yùn)算符(?.) 78
6.4.3 非空斷言運(yùn)算符(!!) 79
6.4.4 使用Elvis運(yùn)算符(?:) 80
第7章 字符串 82
本章視頻:93分鐘
7.1 字符串字面量 82
7.1.1 普通字符串 82
7.1.2 原始字符串 83
7.2 不可變字符串 85
7.2.1 String 85
7.2.2 字符串拼接 86
7.2.3 字符串模板 87
7.2.4 字符串查找 89
7.2.5 字符串比較 91
7.2.6 字符串截取 93
7.3 可變字符串 94
7.3.1 StringBuilder 94
7.3.2 字符串追加、插入、刪除和替換 95
7.4 正則表達(dá)式 97
7.4.1 Regex類 97
7.4.2 字符串匹配 98
7.4.3 字符串查找 99
7.4.4 字符串替換 99
7.4.5 字符串分割 100
第8章 運(yùn)算符 102
本章視頻:51分鐘
8.1 算術(shù)運(yùn)算符 102
8.1.1 一元運(yùn)算符 102
8.1.2 二元運(yùn)算符 103
8.1.3 算術(shù)賦值運(yùn)算符 104
8.2 關(guān)系運(yùn)算符 105
8.3 邏輯運(yùn)算符 107
8.4 位運(yùn)算符 108
8.5 其他運(yùn)算符 111
8.6 運(yùn)算符優(yōu)先級(jí) 111
第9章 程序流程控制 113
本章視頻:47分鐘
9.1 if分支結(jié)構(gòu) 113
9.1.1 if結(jié)構(gòu)當(dāng)作語(yǔ)句使用 113
9.1.2 if表達(dá)式 115
9.2 when多分支結(jié)構(gòu) 117
9.2.1 when結(jié)構(gòu)當(dāng)作語(yǔ)句使用 118
9.2.2 when表達(dá)式 119
9.3 循環(huán)結(jié)構(gòu) 121
9.3.1 while語(yǔ)句 121
9.3.2 do-while語(yǔ)句 122
9.3.3 for語(yǔ)句 122
9.4 跳轉(zhuǎn)語(yǔ)句 124
9.4.1 break語(yǔ)句 124
9.4.2 continue語(yǔ)句 126
9.5 使用區(qū)間 128
9.5.1 表示區(qū)間 128
9.5.2 使用in和!in關(guān)鍵字 129
第10章 函數(shù) 131
本章視頻:37分鐘
10.1 函數(shù)聲明 131
10.2 返回特殊數(shù)據(jù) 132
10.2.1 無(wú)返回?cái)?shù)據(jù)與Unit類型 132
10.2.2 永遠(yuǎn)不會(huì)正常返回?cái)?shù)據(jù)與Nothing類型 133
10.3 函數(shù)參數(shù) 134
10.3.1 使用命名參數(shù)調(diào)用函數(shù) 134
10.3.2 參數(shù)默認(rèn)值 135
10.3.3 可變參數(shù) 136
10.4 表達(dá)式函數(shù)體 137
10.5 局部函數(shù) 137
10.6 匿名函數(shù) 138
第2篇 面向?qū)ο?/p>
本篇視頻:360分鐘
第11章 面向?qū)ο缶幊?nbsp; 142
本章視頻:246分鐘
11.1 面向?qū)ο蟾攀?nbsp; 142
11.2 面向?qū)ο蟮娜齻€(gè)基本特性 143
11.2.1 封裝性 143
11.2.2 繼承性 143
11.2.3 多態(tài)性 144
11.3 類聲明 144
11.4 屬性 146
11.4.1 回顧JavaBean 146
11.4.2 聲明屬性 147
11.4.3 延遲初始化屬性 150
11.4.4 委托屬性 151
11.4.5 惰性加載屬性 152
11.4.6 可觀察屬性 153
11.5 擴(kuò)展 154
11.5.1 擴(kuò)展函數(shù) 155
11.5.2 擴(kuò)展屬性 156
11.5.3 “成員優(yōu)先”原則 157
11.5.4 定義中綴運(yùn)算符 159
11.6 構(gòu)造函數(shù) 160
11.6.1 主構(gòu)造函數(shù) 160
11.6.2 次構(gòu)造函數(shù) 162
11.6.3 默認(rèn)構(gòu)造函數(shù) 163
11.7 封裝性與可見性修飾符 164
11.7.1 可見性范圍 164
11.7.2 公有可見性 166
11.7.3 內(nèi)部可見性 167
11.7.4 保護(hù)可見性 167
11.7.5 私有可見性 168
11.8 數(shù)據(jù)類 169
11.8.1 聲明數(shù)據(jù)類 170
11.8.2 使用copy函數(shù) 171
11.8.3 解構(gòu)數(shù)據(jù)類 172
11.9 枚舉類 172
11.9.1 聲明枚舉類 172
11.9.2 枚舉類構(gòu)造函數(shù) 174
11.9.3 枚舉常用屬性和函數(shù) 175
11.10 嵌套類 176
11.10.1 嵌套類 176
11.10.2 內(nèi)部類 178
11.11 強(qiáng)大的object關(guān)鍵字 180
11.11.1 對(duì)象表達(dá)式 180
11.11.2 對(duì)象聲明 182
11.11.3 伴生對(duì)象 184
第12章 繼承與多態(tài) 188
本章視頻:78分鐘
12.1 Kotlin中的繼承 188
12.2 調(diào)用父類構(gòu)造函數(shù) 190
12.2.1 使用主構(gòu)造函數(shù) 191
12.2.2 使用次構(gòu)造函數(shù)重載 192
12.2.3 使用參數(shù)默認(rèn)值調(diào)用構(gòu)造函數(shù) 193
12.3 重寫成員屬性和函數(shù) 194
12.3.1 重寫成員屬性 194
12.3.2 重寫成員函數(shù) 195
12.4 多態(tài) 197
12.4.1 多態(tài)概念 197
12.4.2 使用is和!is進(jìn)行類型檢查 199
12.4.3 使用as和as?進(jìn)行類型轉(zhuǎn)換 202
12.5 密封類 203
第13章 抽象類與接口 206
本章視頻:36分鐘
13.1 抽象類 206
13.1.1 抽象類概念 206
13.1.2 抽象類聲明和實(shí)現(xiàn) 206
13.2 使用接口 209
13.2.1 接口概念 209
13.2.2 接口聲明和實(shí)現(xiàn) 209
13.2.3 接口與多繼承 212
13.2.4 接口繼承 213
13.2.5 接口中的具體函數(shù)和屬性 214
第3篇 函數(shù)式編程
本篇視頻:302分鐘
第14章 函數(shù)式編程基石——高階函數(shù)和Lambda表達(dá)式 218
本章視頻:91分鐘
14.1 函數(shù)式編程簡(jiǎn)介 218
14.2 高階函數(shù) 218
14.2.1 函數(shù)類型 219
14.2.2 函數(shù)字面量 220
14.2.3 函數(shù)作為另一個(gè)函數(shù)返回值使用 221
14.2.4 函數(shù)作為參數(shù)使用 222
14.3 Lambda表達(dá)式 223
14.3.1 Lambda表達(dá)式標(biāo)準(zhǔn)語(yǔ)法格式 223
14.3.2 使用Lambda表達(dá)式 225
14.3.3 Lambda表達(dá)式簡(jiǎn)化寫法 225
14.3.4 Lambda表達(dá)式與return語(yǔ)句 228
14.4 閉包與捕獲變量 229
14.5 內(nèi)聯(lián)函數(shù) 232
14.5.1 自定義內(nèi)聯(lián)函數(shù) 232
14.5.2 使用let函數(shù) 233
14.5.3 使用with和apply函數(shù) 233
第15章 泛型 236
本章視頻:51分鐘
15.1 泛型函數(shù) 236
15.1.1 聲明泛型函數(shù) 236
15.1.2 多類型參數(shù) 237
15.1.3 泛型約束 237
15.1.4 可空類型參數(shù) 238
15.2 泛型屬性 239
15.3 泛型類 240
15.4 泛型接口 242
第16章 數(shù)據(jù)容器——數(shù)組和集合 245
本章視頻:81分鐘
16.1 數(shù)組 245
16.1.1 對(duì)象數(shù)組 245
16.1.2 基本數(shù)據(jù)類型數(shù)組 248
16.2 集合概述 249
16.3 Set集合 250
16.3.1 不可變Set集合 250
16.3.2 可變Set集合 252
16.4 List集合 254
16.4.1 不可變List集合 255
16.4.2 可變List集合 256
16.5 Map集合 258
16.5.1 不可變Map集合 259
16.5.2 可變Map集合 261
第17章 Kotlin中函數(shù)式編程API 264
本章視頻:79分鐘
17.1 函數(shù)式編程API與鏈?zhǔn)秸{(diào)用 264
17.2 遍歷操作 265
17.2.1 forEach 265
17.2.2 forEachIndexed 266
17.3 三大基礎(chǔ)函數(shù) 267
17.3.1 filter 267
17.3.2 map 268
17.3.3 reduce 269
17.4 聚合函數(shù) 270
17.5 過濾函數(shù) 272
17.6 映射函數(shù) 273
17.7 排序函數(shù) 275
17.8 案例:求階乘 276
17.9 案例:計(jì)算水仙花數(shù) 277
第4篇 Kotlin進(jìn)階
本篇視頻:744分鐘
第18章 異常處理 280
本章視頻:67分鐘
18.1 從一個(gè)問題開始 280
18.2 異常類繼承層次 281
18.2.1 Throwable類 281
18.2.2 Error和Exception 283
18.3 捕獲異常 283
18.3.1 try-catch語(yǔ)句 284
18.3.2 try-catch表達(dá)式 285
18.3.3 多catch代碼塊 286
18.3.4 try-catch語(yǔ)句嵌套 288
18.4 釋放資源 289
18.4.1 finally代碼塊 290
18.4.2 自動(dòng)資源管理 293
18.5 throw與顯式拋出異常 294
第19章 線程 297
本章視頻:49分鐘
19.1 基礎(chǔ)知識(shí) 297
19.1.1 進(jìn)程 297
19.1.2 線程 297
19.1.3 主線程 298
19.2 創(chuàng)建線程 299
19.3 線程狀態(tài) 301
19.4 線程管理 302
19.4.1 等待線程結(jié)束 302
19.4.2 線程讓步 304
19.4.3 線程停止 305
第20章 協(xié)程 308
本章視頻:57分鐘
20.1 協(xié)程介紹 308
20.2 創(chuàng)建協(xié)程 308
20.2.1 Kotlin協(xié)程API 308
20.2.2 創(chuàng)建支持kotlinx.coroutines的項(xiàng)目 309
20.2.3 第一個(gè)協(xié)程程序 310
20.2.4 launch函數(shù)與Job對(duì)象 311
20.2.5 runBlocking函數(shù) 313
20.2.6 掛起函數(shù) 314
20.3 協(xié)程生命周期 316
20.4 管理協(xié)程 317
20.4.1 等待協(xié)程結(jié)束 317
20.4.2 超時(shí)設(shè)置 318
20.4.3 取消協(xié)程 320
第21章 Kotlin與Java混合編程 322
本章視頻:77分鐘
21.1 數(shù)據(jù)類型映射 322
21.1.1 Java基本數(shù)據(jù)類型與Kotlin數(shù)據(jù)類型映射 322
21.1.2 Java包裝類與Kotlin數(shù)據(jù)類型映射 322
21.1.3 Java常用類與Kotlin數(shù)據(jù)類型映射 323
21.1.4 Java集合類型與Kotlin數(shù)據(jù)類型映射 323
21.2 Kotlin調(diào)用Java 324
21.2.1 避免Kotlin關(guān)鍵字 324
21.2.2 平臺(tái)類型與空值 325
21.2.3 異常檢查 327
21.2.4 調(diào)用Java函數(shù)式接口 327
21.3 Java調(diào)用Kotlin 328
21.3.1 訪問Kotlin屬性 329
21.3.2 訪問包級(jí)別成員 329
21.3.3 實(shí)例字段、靜態(tài)字段和靜態(tài)函數(shù) 330
21.3.4 可見性 334
21.3.5 生成重載函數(shù) 336
21.3.6 異常檢查 338
第22章 Kotlin I/O與文件管理 340
本章視頻:49分鐘
22.1 Java I/O流概述 340
22.1.1 Java流設(shè)計(jì)理念 340
22.1.2 Java流類繼承層次 341
22.2 字節(jié)流 343
22.2.1 InputStream抽象類 344
22.2.2 OutputStream抽象類 344
22.2.3 案例:文件復(fù)制 345
22.3 字符流 346
22.3.1 Reader抽象類 346
22.3.2 Writer抽象類 346
22.3.3 案例:文件復(fù)制 347
22.4 文件管理 348
22.4.1 File類擴(kuò)展函數(shù) 348
22.4.2 案例:讀取目錄文件 349
第23章 網(wǎng)絡(luò)編程 351
本章視頻:115分鐘
23.1 網(wǎng)絡(luò)基礎(chǔ) 351
23.1.1 網(wǎng)絡(luò)結(jié)構(gòu) 351
23.1.2 TCP/IP協(xié)議 352
23.1.3 IP地址 352
23.1.4 端口 353
23.2 TCP Socket低層次網(wǎng)絡(luò)編程 353
23.2.1 TCP Socket通信概述 353
23.2.2 TCP Socket通信過程 353
23.2.3 Socket類 354
23.2.4 ServerSocket類 356
23.2.5 案例:文件上傳工具 356
23.3 UDP Socket低層次網(wǎng)絡(luò)編程 358
23.3.1 DatagramSocket類 358
23.3.2 DatagramPacket類 359
23.3.3 案例:文件上傳工具 360
23.4 數(shù)據(jù)交換格式 362
23.4.1 JSON文檔結(jié)構(gòu) 363
23.4.2 使用第三方JSON庫(kù) 365
23.4.3 JSON數(shù)據(jù)編碼和解碼 366
23.5 訪問互聯(lián)網(wǎng)資源 368
23.5.1 URL的概念 368
23.5.2 HTTP/HTTPS協(xié)議 369
23.5.3 使用URL類 369
23.5.4 使用HttpURLConnection發(fā)送GET請(qǐng)求 370
23.5.5 使用HttpURLConnection發(fā)送POST請(qǐng)求 372
23.5.6 實(shí)例:Downloader 373
第24章 Kotlin與Java Swing圖形用戶界面編程 375
本章視頻:182分鐘
24.1 Java圖形用戶界面技術(shù) 375
24.2 Swing技術(shù)基礎(chǔ) 376
24.2.1 Swing類層次結(jié)構(gòu) 377
24.2.2 Swing程序結(jié)構(gòu) 378
24.3 事件處理模型 381
24.3.1 內(nèi)部類和對(duì)象表達(dá)式處理事件 382
24.3.2 Lambda表達(dá)式處理事件 384
24.3.3 使用適配器 385
24.4 布局管理 387
24.4.1 FlowLayout布局 387
24.4.2 BorderLayout布局 389
24.4.3 GridLayout布局 391
24.4.4 不使用布局管理器 393
24.5 Swing組件 395
24.5.1 標(biāo)簽和按鈕 395
24.5.2 文本輸入組件 398
24.5.3 復(fù)選框和單選按鈕 401
24.5.4 下拉列表 404
24.5.5 列表 406
24.5.6 分隔面板 407
24.5.7 使用表格 409
24.6 案例:圖書庫(kù)存 413
第25章 輕量級(jí)SQL框架—— Exposed 418
本章視頻:91分鐘
25.1 MySQL數(shù)據(jù)庫(kù)管理系統(tǒng) 418
25.1.1 數(shù)據(jù)庫(kù)安裝與配置 418
25.1.2 連接MySQL服務(wù)器 422
25.1.3 常見的管理命令 425
25.2 Kotlin與DSL語(yǔ)言 429
25.3 使用Exposed框架 430
25.3.1 配置項(xiàng)目 430
25.3.2 面向DSL API 431
25.3.3 面向?qū)ο驛PI 434
25.4 案例:多表連接查詢操作 436
25.4.1 創(chuàng)建數(shù)據(jù)庫(kù) 437
25.4.2 配置SQL日志 438
25.4.3 實(shí)現(xiàn)查詢 438
第26章 反射 442
本章視頻:34分鐘
26.1 Kotlin反射API 442
26.2 引用類 443
26.3 調(diào)用函數(shù) 445
26.4 調(diào)用構(gòu)造函數(shù) 446
26.5 調(diào)用屬性 448
第27章 注解 451
本章視頻:23分鐘
27.1 元注解 451
27.2 自定義注解 453
27.2.1 聲明注解 453
27.2.2 案例:使用元注解 454
27.2.3 注解目標(biāo)聲明 456
27.2.4 案例:讀取運(yùn)行時(shí)注解信息 457
第5篇 項(xiàng)目實(shí)戰(zhàn)
本篇視頻:621分鐘
第28章 項(xiàng)目實(shí)戰(zhàn)1:開發(fā)PetStore寵物商店項(xiàng)目 460
本章視頻:309分鐘
28.1 系統(tǒng)分析與設(shè)計(jì) 460
28.1.1 項(xiàng)目概述 460
28.1.2 需求分析 461
28.1.3 原型設(shè)計(jì) 461
28.1.4 數(shù)據(jù)庫(kù)設(shè)計(jì) 463
28.1.5 架構(gòu)設(shè)計(jì) 465
28.1.6 系統(tǒng)設(shè)計(jì) 466
28.2 任務(wù)1:創(chuàng)建數(shù)據(jù)庫(kù) 467
28.2.1 迭代1.1:安裝和配置MySQL數(shù)據(jù)庫(kù) 467
28.2.2 迭代1.2:編寫數(shù)據(jù)庫(kù)DDL腳本 467
28.2.3 迭代1.3:插入初始數(shù)據(jù)到數(shù)據(jù)庫(kù) 468
28.3 任務(wù)2:初始化項(xiàng)目 469
28.3.1 迭代2.1:配置項(xiàng)目 469
28.3.2 迭代2.2:添加資源圖片 470
28.3.3 迭代2.3:添加包 471
28.4 任務(wù)3:編寫數(shù)據(jù)持久層代碼 471
28.4.1 迭代3.1:編寫實(shí)體類 471
28.4.2 迭代3.2:創(chuàng)建數(shù)據(jù)表類 474
28.4.3 迭代3.3:編寫DAO類 475
28.5 任務(wù)4:編寫表示層代碼 483
28.5.1 迭代4.1:編寫啟動(dòng)類 483
28.5.2 迭代4.2:編寫自定義窗口類——MyFrame 483
28.5.3 迭代4.3:用戶登錄窗口 485
28.5.4 迭代4.4:商品列表窗口 487
28.5.5 迭代4.5:商品購(gòu)物車窗口 495
28.6 任務(wù)5:應(yīng)用程序打包發(fā)布 503
28.6.1 迭代5.1:處理TODO和FIXME任務(wù) 503
28.6.2 迭代5.2:打包 503
第29章 項(xiàng)目實(shí)戰(zhàn)2:開發(fā)Kotlin版QQ2006聊天工具 507
本章視頻:312分鐘
29.1 系統(tǒng)分析與設(shè)計(jì) 507
29.1.1 項(xiàng)目概述 507
29.1.2 需求分析 508
29.1.3 原型設(shè)計(jì) 509
29.1.4 數(shù)據(jù)庫(kù)設(shè)計(jì) 509
29.1.5 網(wǎng)絡(luò)拓?fù)鋱D 512
29.1.6 系統(tǒng)設(shè)計(jì) 512
29.2 任務(wù)1:創(chuàng)建服務(wù)器端數(shù)據(jù)庫(kù) 513
29.2.1 迭代1.1:安裝和配置MySQL數(shù)據(jù)庫(kù) 513
29.2.2 迭代1.2:編寫數(shù)據(jù)庫(kù)DDL腳本 514
29.2.3 迭代1.3:插入初始數(shù)據(jù)到數(shù)據(jù)庫(kù) 514
29.3 任務(wù)2:初始化項(xiàng)目 515
29.3.1 任務(wù)2.1:配置項(xiàng)目 515
29.3.2 任務(wù)2.2:添加資源圖片 516
29.3.3 任務(wù)2.3:添加包 517
29.4 任務(wù)3:編寫服務(wù)器端外圍代碼 517
29.4.1 任務(wù)3.1:創(chuàng)建數(shù)據(jù)表類 517
29.4.2 任務(wù)3.2:編寫UserDAO類 518
29.4.3 任務(wù)3.3:編寫ClientInfo類 521
29.5 任務(wù)4:客戶端UI實(shí)現(xiàn) 521
29.5.1 迭代4.1:登錄窗口實(shí)現(xiàn) 521
29.5.2 迭代4.2:好友列表窗口實(shí)現(xiàn) 525
29.5.3 迭代4.3:聊天窗口實(shí)現(xiàn) 529
29.6 任務(wù)5:用戶登錄過程實(shí)現(xiàn) 533
29.6.1 迭代5.1:客戶端啟動(dòng) 533
29.6.2 迭代5.2:客戶端登錄編程 535
29.6.3 迭代5.3:服務(wù)器啟動(dòng) 538
29.6.4 迭代5.4:服務(wù)器驗(yàn)證編程 539
29.7 任務(wù)6:刷新好友列表 541
29.7.1 迭代6.1:刷新好友列表服務(wù)器端編程 542
29.7.2 迭代6.2:刷新好友列表客戶端編程 543
29.8 任務(wù)7:聊天過程實(shí)現(xiàn) 547
29.8.1 迭代7.1:客戶端用戶1向用戶3發(fā)送消息 548
29.8.2 迭代7.2:服務(wù)器接收用戶1消息與轉(zhuǎn)發(fā)給用戶3消息 549
29.8.3 迭代7.3:客戶端用戶3接收用戶1消息 551
29.9 任務(wù)8:用戶下線 552
29.9.1 迭代8.1:客戶端編程 553
29.9.2 迭代8.2:服務(wù)器端編程 554