倉頡語言面向對象程序設計
栗青生、羅欣、鄭珺
- 出版商: 清華大學
- 出版日期: 2026-05-01
- 定價: $479
- 售價: $478
- 語言: 簡體中文
- ISBN: 7302715106
- ISBN-13: 9787302715108
-
相關分類:
Functional-programming、Object-oriented
下單後立即進貨 (約4週~6週)
商品描述
目錄大綱
目錄
第1章面向對象編程概述/1
1.1面向對象程序設計概述/1
1.1.1面向對象程序設計/2
1.1.2面向對象程序分析示例/3
1.1.3面向對象可視化建模工具/4
1.1.4面向對象的主要概念/5
1.2面向對象程序設計的特點/7
1.2.1面向過程的方法的局限性/7
1.2.2面向對象程序設計的主要優點/8
1.3面向對象的系統開發/9
1.3.1典型的面向對象程序設計語言/9
1.3.2面向對象程序設計工具及設計流程/11
1.4倉頡語言與C++語言的對比分析/14
1.4.1程序示例/14
1.4.2對比分析/15
本章小結/17
習題1/17
第2章倉頡語言基礎/19
2.1倉頡語言概述/20
2.1.1倉頡編程語言的特點/20
2.1.2第一個倉頡程序:“Hello,倉頡!”/21
2.2程序結構及設計環境/23
2.2.1函數結構與類結構/23
2.2.2倉頡程序的編程工具鏈/28
2.2.3倉頡程序集成化的IDE編程環境/30
2.3數據表示/32
2.3.1數據表示符/33
2.3.2操作運算符/36
2.3.3變量/40
2.3.4常量/42
2.3.5作用域/45
2.3.6表達式/47
2.4數據類型/51
2.4.1整數類型/52
2.4.2浮點類型/56
2.4.3布爾類型/57
2.4.4字符類型/57
2.4.5字符串類型/58
2.4.6元組類型 /61
2.4.7數組類型/64
2.4.8區間類型 /67
2.4.9其他類型/68
2.5類型轉換/69
2.5.1數值類型轉換/69
2.5.2進位記數制的轉換/70
2.5.3Rune類型轉換/70
2.6程序示例/71
示例1: 用函數編程實現閏年判斷/71
示例2: 用插值字符串實現格式化輸出/72
示例3: 用for in雙循環輸出乘法口訣表/73
示例4: 用條件和循環表達式判斷素數/73
示例5: 字符串翻轉的實現/74
示例6: 用函數式和命令式編程方法求公約數和公倍數/74
示例7: 用U+十六進制的形式輸出漢字的Unicode碼/75
本章小結/76
習題2/76
第3章函數編程/78
3.1函數/78
3.1.1定義函數/78
3.1.2調用函數/84
3.2函數類型/86
3.2.1函數返回類型/86
3.2.2嵌套函數/90
3.2.3const 函數/91
3.3Lambda 表達式/92
3.3.1Lambda表達式的定義/92
3.3.2Lambda表達式的基本使用/92
3.3.3Lambda表達式的返回類型和調用/94
3.4閉包/94
3.4.1Lambda表達式中的變量捕獲/94
3.4.2閉包的變量初始化/95
3.4.3使用閉包時應註意的幾個問題/95
3.5函數調用語法/95
3.5.1尾隨 Lambda /96
3.5.2Flow 表達式/97
3.5.3變長參數/99
3.6函數重載/102
3.6.1函數重載的定義/102
3.6.2函數重載的規則/102
3.6.3函數重載決議/104
3.7操作符重載/104
3.8程序示例/106
示例1: 用高階函數,實現對數組的統一操作/106
示例2: 多文檔結構程序中的函數調用/108
示例3: 函數類型作為返回值,返回 Lambda 表達式/109
示例4: 嵌套函數使用閉包變量/109
示例5: Lambda 表達式推斷類型並立即調用/110
示例6: 漢字元數據解構函數/110
本章小結/111
習題3/111
第4章結構體、枚舉及模式匹配/113
4.1結構體數據類型/114
4.1.1結構體概述/114
4.1.2結構體的定義/115
4.1.3創建 struct 示例/120
4.1.4mut 函數/122
4.2枚舉類型/123
4.2.1enum 類型的定義/123
4.2.2enum的使用/125
4.3Option類型/126
4.3.1Option類型的定義/126
4.3.2Option類型的使用/126
4.3.3Option 類型的解構/127
4.4模式匹配/128
4.4.1常量模式/128
4.4.2通配符模式/129
4.4.3綁定模式/129
4.4.4tuple模式/131
4.4.5類模式/132
4.4.6enum 模式/132
4.5模式的組合及類型/133
4.5.1模式的嵌套組合/133
4.5.2模式匹配的兩種類型/133
4.5.3match表達式/136
4.5.4iflet 表達式/141
4.5.5whilelet 表達式/141
4.5.6其他模式的應用/142
4.6程序示例/144
示例1: 八面玲瓏機器人/144
示例2: 多點距離計算/146
示例3: 文本生成計算/146
示例4: 漢字結構計算/148
示例5: 冒泡排序算法/149
本章小結/150
習題4/150
第5章類和對象/155
5.1類/156
5.1.1從結構體到類/156
5.1.2類的定義/157
5.2類的數據成員/159
5.2.1成員變量/159
5.2.2成員函數/161
5.3類的構造函數/163
5.3.1普通構造函數/164
5.3.2主構造函數/165
5.4類的成員函數/168
5.4.1實例成員函數/168
5.4.2靜態成員函數/169
5.4.3抽象成員函數/169
5.5函數和操作符重載/170
5.5.1構造函數重載/170
5.5.2操作符重載/170
5.6類的終結器/171
5.7類成員及訪問/172
5.7.1訪問運算符/172
5.7.2訪問修飾符/173
5.7.3訪問屬性/173
5.8對象/175
5.8.1創建對象/175
5.8.2 創建對象數組/177
5.8.3對象數據成員/178
5.8.4對象賦值語句/179
5.9類的作用域與自引用指針/180
5.9.1類的作用域/180
5.9.2自引用指針/181
5.10程序示例/182
示例1: 漢字類及生成計數器設計/182
示例2: 用對象作為成員確定類與類的關系/183
示例3: 使用對象數組管理點集並計算距離/184
示例4: 時間類Time設計/185
示例5: 利用枚舉和類確定笛卡兒坐標系中點的位置屬性/185
本章小結/186
習題5/187
第6章類繼承和接口繼承/189
6.1類繼承/189
6.1.1繼承與代碼重用/189
6.1.2基類與派生類/190
6.2抽象類與抽象方法/192
6.3類繼承中的對象賦值/194
6.4父類構造函數與super關鍵字/195
6.5覆蓋和重定義/198
6.6接口繼承/199
6.6.1接口定義/201
6.6.2接口繼承/203
6.6.3接口實現/208
6.6.4Any類型/209
6.6.5在結構體中實現接口/210
6.7屬性/214
6.7.1屬性定義/215
6.7.2屬性使用/218
6.8程序示例/220
示例1: 定義繼承關系並實現方法重寫/220
示例2: 使用抽象類與重寫方法/220
示例3: 類對象賦值與動態綁定/221
示例4: 一個類實現多個接口/222
示例5: 使用屬性(prop)封裝成員變量/223
實例6: 類模式匹配與圖形描述/223
本章小結/224
習題6/224
第7章子類型關系和多態性/227
7.1子類型關系/227
7.1.1子類型關系與子類型多態/228
7.1.2子類型的判定/228
7.2多態性/230
7.2.1編譯時的多態/230
7.2.2運行時的多態/230
7.3類型轉換/232
7.3.1數值類型之間的轉換/232
7.3.2is和as操作符/232
7.4泛型/235
7.4.1泛型函數/236
7.4.2泛型接口/239
7.4.3泛型類/240
7.4.4泛型結構體/241
7.4.5泛型枚舉/241
7.4.6泛型類型的子類型關系/242
7.4.7類型別名/243
7.4.8泛型約束/245
7.5擴展/247
7.5.1擴展的基本特性/247
7.5.2直接擴展/248
7.5.3接口擴展 /250
7.6程序示例/251
示例1: 用函數重載實現編譯時的多態/251
示例2: 用方法重寫實現運行時多態/251
示例3: 類型判定與安全轉換/252
示例4: 泛型容器與交換函數/252
示例5: 用extend擴展字符串/253
本章小結/254
習題7/254
第8章集合與包/257
8.1倉頡集合的基本操作/257
8.1.1集合概述/257
8.1.2倉頡Array的基本操作/258
8.1.3倉頡Array的高級應用 /261
8.2ArrayList/263
8.2.1ArrayList的使用/263
8.2.2訪問ArrayList元素/263
8.2.3修改 ArrayList/265
8.3HashSet/266
8.3.1HashSet 的使用/266
8.3.2訪問 HashSet 成員/269
8.3.3修改 HashSet/270
8.4HashMap/272
8.4.1使用 HashMap/272
8.4.2訪問和修改HashMap 成員/273
8.4.3使用HashMap進行數據管理/275
8.5自定義類型的集合處理/279
8.6包概述/280
8.6.1包的聲明/281
8.6.2頂層聲明的可見性/282
8.6.3包的導入/284
8.7程序示例/286
示例1: 用對象數組實現學生成績管理/286
示例2: 基於 HashMap 的學生成績管理系統/287
示例3: 基於接口與多態的支付系統/293
示例4: 單詞去重與統計/295
示例5: 簡易漢字結構字典的創建及查詢/296
本章小結/297
習題8/297
第9章I/O操作與異常處理/300
9.1I/O流概述/300
9.1.1數據流/301
9.1.2數據流分類/302
9.1.3數據流操作/302
9.1.4數據流操作異常/302
9.2Stream操作函數/303
9.2.1copy()函數/303
9.2.2readString()函數/304
9.2.3readStringUnchecked()函數/305
9.2.4readToEnd()函數/306
9.3I/O節點流/306
9.3.1標準流/306
9.3.2文件流/310
9.4I/O處理流/312
9.4.1緩沖流/312
9.4.2字符串流/313
9.5異常及異常處理/314
9.5.1定義異常/314
9.5.2throw和處理異常/315
9.5.3普通try表達式/316
9.5.4trywithresources 表達式/317
9.6使用 Option處理異常/319
9.6.1模式匹配/319
9.6.2Coalescing操作符 (??)/320
9.6.3問號操作符 (?)/320
9.6.4getOrThrow()函數/321
9.7程序示例/322
示例1: 學生成績文件的讀取/322
示例2: 日誌文件復制/322
示例3: 異常處理與trycatchfinally/323
示例4: 文件寫入以及關閉與自動文件資源管理/324
示例5: 使用Option類型的快速查找/324
本章小結/325
習題9/325
第10章網絡與並發編程/328
10.1網絡與並發編程概述/328
10.1.1C/S與B/S網絡模式/328
10.1.2多線程並發編程/329
10.2Socket 編程/330
10.2.1TCP 編程/331
10.2.2UDP 編程/332
10.3TCP聊天程序設計/333
10.3.1TcpServerSocket類/333
10.3.2TcpSocket類/334
10.4HTTP編程/335
10.4.1stdx包的安裝/335
10.4.2stdx程序測試/336
10.4.3HTTP多線程網絡編程/338
10.5WebSocket編程/340
10.5.1服務器端程序/340
10.5.2客戶端程序/341
10.6網絡編程示例/343
示例1: 網絡註冊用戶管理/343
示例2: 服務器端與客戶端數據通信/345
示例3: 多線程文件下載與日誌記錄/347
示例4: UDP 多客戶端消息收發/348
示例5: WebSocket 實時消息回顯/348
本章小結/349
習題10/349
參考文獻/352
附錄A習題參考答案/353







