像計算機科學家一樣思考Java(第二版)

《像計算機科學家一樣思考Java(第二版)》是2021年中國電力出版社出版的圖書。

基本介紹

  • 中文名:像計算機科學家一樣思考Java(第二版)
  • 出版時間:2021年8月1日
  • 出版社:中國電力出版社
  • ISBN:9787519856724
內容簡介,圖書目錄,

內容簡介

·每次揭示一個概念:通過帶有範例的一系列小步驟,來逐漸解決某個複雜的問題。
·告訴你如何描述問題、如何構思解決方案,如何開發、測試並調試程式。
·學習輸入與輸出、決策與循環、類與方法、字元串與數組,以及遞歸與多態。
·告訴你怎樣選出最合適的程式開發方法,以及如何運用重要的調試技能來排除程式故障。

圖書目錄

前言 . 1
第1 章 計算機編程 . 11
1.1 什麼是計算機? 11
1.2 什麼是編程? 12
1.3 Hello World 程式 .13
1.4 編譯Java 程式 15
1.5 顯示兩條信息 17
1.6 調整原始碼的格式 19
1.7 使用轉義符 .20
1.8 什麼是計算機科學? .21
1.9 調試程式 22
1.10 辭彙表 23
1.11 習題 .26
第2 章 變數與運算符 . 29
2.1 聲明變數 29
2.2 給變數賦值 .31
2.3 記憶體示意圖 .32
2.4 列印變數(顯示變數的值) 33
2.5 算數運算符 .35
2.6 浮點數 36
2.7 捨入誤差 38
2.8 字元串運算 .39
2.9 編譯器的錯誤訊息 41
2.10 其他類型的錯誤 .42
2.11 辭彙表 .44
2.12 習題 .46
第3 章 輸入與輸出 . 49
3.1 System 類 .49
3.2 Scanner 類 51
3.3 程式語言的要素 52
3.4 字面量與常量 54
3.5 調整輸出格式 55
3.6 解讀錯誤訊息 57
3.7 手動類型轉換運算符 .59
3.8 求余運算符 .60
3.9 綜合運用所學知識編寫範例程式 61
3.10 Scanner 的bug 63
3.11 辭彙表 .65
3.12 習題 .66
第4 章 方法與測試 . 71
4.1 定義新方法 .71
4.2 執行流 73
4.3 形式參數與實際參數 .74
4.4 多參數的方法 76
4.5 棧示意圖 78
4.6 Math 類的方法 79
4.7 方法之間的組合 80
4.8 返回值 82
4.9 漸進式開發(增量開發) 84
4.10 辭彙表 87
4.11 習題 .88
第5 章 條件與邏輯 . 95
5.1 關係運算符 .95
5.2 if-else 語句 .96
5.3 串接與嵌套 .99
5.4 switch 語句 100
5.5 邏輯運算符 102
5.6 德摩根定律 103
5.7 boolean 變數 105
5.8 boolean 方法 106
5.9 驗證輸入值 107
5.10 範例程式 .109
5.11 辭彙表 110
5.12 習題 111
第6 章 循環與字元串 117
6.1 while 語句 . 117
6.2 遞增與遞減 120
6.3 for 語句 121
6.4 嵌套循環 123
6.5 字元 .124
6.6 怎樣在for 與while 循環之間選擇 126
6.7 疊代字元串 127
6.8 indexOf 方法 128
6.9 子字元串 129
6.10 對比字元串的內容 .130
6.11 調整字元串的格式 .132
6.12 辭彙表 .133
6.13 習題 134
第7 章 數組與引用 139
7.1 創建數組 140
7.2 給元素賦值 141
7.3 顯示數組的內容 143
7.4 複製數組 145
7.5 遍歷數組 147
7.6 生成隨機數 149
7.7 收集繪製直方圖所需的統計數據 .150
7.8 增強版的for 循環 .153
7.9 統計字元出現的次數 154
7.10 辭彙表 .156
7.11 習題 158
第8 章 遞歸方法 163
8.1 不帶返回值的遞歸方法 .163
8.2 用棧圖描述遞歸 165
8.3 帶有返回值的遞歸方法 .167
8.4 信任那些應該能夠成立的方法 170
8.5 用遞歸實現正向計數 172
8.6 二進制計數系統 173
8.7 通過遞歸把十進制數表示成二進制數 175
8.8 CodingBat 網站上面的編程問題 176
8.9 辭彙表 179
8.10 習題 180
第9 章 不可變的對象 187
9.1 原始數據與對象之間的區別 187
9.2 null 關鍵字 189
9.3 字元串是不可變的 190
9.4 與原始類型相對應的包裝類 192
9.5 命令行參數 194
9.6 驗證參數 196
9.7 用BigInteger 做運算 198
9.8 增量設計(漸進式的設計) 199
9.9 讓程式變得更加通用 201
9.10 辭彙表 .203
9.11 習題 204
第10 章 可變的對象 211
10.1 Point 對象 211
10.2 把對象用作參數 213
10.3 把對象用作返回值 .214
10.4 Rectangle 是可變的 215
10.5 再談別名 .217
10.6 Java 庫的原始碼 .218
10.7 類圖 219
10.8 再談作用域 221
10.9 垃圾收集(垃圾回收) 222
10.10 可變對象與不可變對象的區別 .223
10.11 StringBuilder 對象 224
10.12 辭彙表 225
10.13 習題 226
第11 章 類的設計 . 229
11.1 Time 類 230
11.2 構造器 231
11.3 值構造器 .233
11.4 Getter 與Setter .234
11.5 顯示對象 .237
11.6 toString 方法 .237
11.7 equals 方法 .239
11.8 將兩個Time 相加 241
11.9 辭彙表 244
11.10 習題 245
第12 章 對象數組 . 249
12.1 Card 對象 250
12.2 給Card 類型定義toString 方法 251
12.3 類變數 .253
12.4 compareTo 方法 255
12.5 Card 對象應該是不可變的 .256
12.6 由Card 構成的數組 257
12.7 順序搜尋 .260
12.8 二分搜尋 .260
12.9 追蹤代碼的執行情況 262
12.10 辭彙表 263
12.11 習題 264
第13 章 把數組封裝成對象 267
13.1 定義新類來封裝一疊牌 267
13.2 洗牌 269
13.3 選擇排序法 271
13.4 歸併排序法 272
13.5 如何表示一疊牌之中的某一部分 273
13.6 把兩小疊牌合併成一大疊 274
13.7 添加遞歸邏輯 275
13.8 靜態語境 .276
13.9 如何表示數量可變的一疊牌 .279
13.10 推進War 遊戲 281
13.11 辭彙表 283
13.12 習題 284
第14 章 擴展已有的類 287
14.1 CardCollection 類 288
14.2 繼承 291
14.3 發牌 293
14.4 Player 類 .295
14.5 Eights 類 .298
14.6 類之間的關係 301
14.7 辭彙表 .302
14.8 習題 303
第15 章 由數組所構成的數組 305
15.1 康威生命遊戲 305
15.2 Cell 類 307
15.3 二維數組 .309
15.4 GridCanvas 類 311
15.5 GridCanvas 類中的其他方法 312
15.6 啟動遊戲 .313
15.7 實現遊戲的主循環 .315
15.8 處理異常 .315
15.9 計算每個細胞周邊的存活細胞數 316
15.10 更新GridCanvas 318
15.11 辭彙表 321
15.12 習題 321
第16 章 復用類 . 325
16.1 編寫第一版蘭頓螞蟻遊戲 326
16.2 重構 328
16.3 抽象類 .330
16.4 UML 圖 332
16.5 辭彙表 .333
16.6 習題 334
第17 章 高級話題 . 335
17.1 Polygon 對象 .336
17.2 給多邊形添加顏色功能 337
17.3 正多邊形 .338
17.4 給同一個類編寫多個構造器 .340
17.5 試著編寫一個能夠繪製多邊形的程式 .342
17.6 閃爍的多邊形 345
17.7 接口 347
17.8 事件監聽器 349
17.9 定時器 .353
17.10 辭彙表 355
17.11 習題 355
附錄A 工具 . 357
附錄B Javadoc 371
附錄C 圖形 . 383
附錄D 調試 . 393
作者介紹 409
封面介紹 409

熱門詞條

聯絡我們