Java語言程式設計(基礎篇)(原書第10版)

Java語言程式設計(基礎篇)(原書第10版)

《Java語言程式設計(基礎篇)(原書第10版)》是2018年4月機械工業出版社出版的圖書,作者是Y.Daniel Liang。

基本介紹

  • 中文名:Java語言程式設計(基礎篇)(原書第10版)
  • 作者:Y.Daniel Liang
  • 出版時間:2018年4月
  • 出版社機械工業出版社
  • ISBN:9787111506904
  • 類別:面向對象
  • 定價:85 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

本書是Java語言的經典教材,中文版分為基礎篇和進階篇,主要介紹程式設計基礎、面向對象編程、GUI程式設計、數據結構和算法、高級Java程式設計等內容。本書以示例講解解決問題的技巧,提供大量的程式清單,每章配有大量複習題和編程練習題,幫助讀者掌握編程技術,並套用所學技術解決實際套用開發中遇到的問題。您手中的這本是其中的基礎篇,主要介紹了基本程式設計、語法結構、面向對象程式設計、繼承和多態、異常處理和文本I/O、抽象類和接口等內容。本書可作為高等院校程式設計相關專業的基礎教材,也可作為Java語言及編程開發愛好者的參考資料。

圖書目錄

目 錄
Introduction to Java Programming, Comprehension Version, Tenth Edition
出版者的話
中文版序
譯者序
前言
第1章 計算機、程式和Java概述 1
1.1 引言 1
1.2 什麼是計算機 2
1.2.1 中央處理器 2
1.2.2 比特和位元組 3
1.2.3 記憶體 3
1.2.4 存儲設備 4
1.2.5 輸入和輸出設備 4
1.2.6 通信設備 5
1.3 程式語言 6
1.3.1 機器語言 6
1.3.2 彙編語言 6
1.3.3 高級語言 7
1.4 作業系統 8
1.4.1 控制和監視系統的活動 8
1.4.2 分配和調配系統資源 8
1.4.3 調度操作 8
1.5 Java、全球資訊網以及其他 9
1.6 Java語言規範、API、JDK和IDE 10
1.7 一個簡單的Java程式 11
1.8 創建、編譯和執行Java程式 13
1.9 程式設計風格和文檔 16
1.9.1 正確的注釋和注釋風格 16
1.9.2 正確的縮進和空白 16
1.9.3 塊的風格 17
1.10 程式設計錯誤 17
1.10.1 語法錯誤 17
1.10.2 運行時錯誤 18
1.10.3 邏輯錯誤 18
1.10.4 常見錯誤 19
1.11 使用NetBeans開發Java程式 20
1.11.1 創建Java工程 20
1.11.2 創建Java類 21
1.11.3 編譯和運行類 22
1.12 使用Eclipse開發Java程式 22
1.12.1 創建Java工程 22
1.12.2 創建Java類 24
1.12.3 編譯和運行類 24
關鍵術語 25
本章小結 25
測試題 26
編程練習題 26
第2章 基本程式設計 28
2.1 引言 28
2.2 編寫簡單的程式 28
2.3 從控制台讀取輸入 31
2.4 標識符 34
2.5 變數 34
2.6 賦值語句和賦值表達式 36
2.7 命名常量 37
2.8 命名習慣 37
2.9 數值數據類型和操作 38
2.9.1 數值類型 38
2.9.2 從鍵盤讀取數值 39
2.9.3 數值操作符 39
2.9.4 冪運算 41
2.10 數值型直接量 41
2.10.1 整型直接量 42
2.10.2 浮點型直接量 42
2.10.3 科學記數法 42
2.11 表達式求值以及操作符優先權 43
2.12 示例學習:顯示當前時間 44
2.13 增強賦值操作符 46
2.14 自增和自減操作符 47
2.15 數值類型轉換 48
2.16 軟體開發過程 50
2.17 示例學習:整錢兌零 54
2.18 常見錯誤和陷阱 56
關鍵術語 58
本章小結 58
測試題 59
編程練習題 59
第3章 選擇 64
3.1 引言 64
3.2 boolean數據類型 64
3.3 if語句 66
3.4 雙分支if-else語句 68
3.5 嵌套的if語句和多分支if-else語句 69
3.6 常見錯誤和陷阱 71
3.7 產生隨機數 74
3.8 示例學習:計算身體質量指數 76
3.9 示例學習:計算稅率 77
3.10 邏輯操作符 80
3.11 示例學習:判定閏年 83
3.12 示例學習:彩票 84
3.13 switch語句 85
3.14 條件表達式 88
3.15 操作符的優先權和結合規則 89
3.16 調試 90
關鍵術語 91
本章小結 91
測試題 92
編程練習題 92
第4章 數學函式、字元和字元串 100
4.1 引言 100
4.2 常用數學函式 101
4.2.1 三角函式方法 101
4.2.2 指數函式方法 102
4.2.3 取整方法 102
4.2.4 min、max和abs方法 102
4.2.5 random方法 103
4.2.6 示例學習:計算三角形的角度 103
4.3 字元數據類型和操作 105
4.3.1 Unicode和ASCII碼 105
4.3.2 特殊字元的轉義序列 106
4.3.3 字元型數據與數值型數據之間的轉換 107
4.3.4 字元的比較和測試 107
4.4 String類型 109
4.4.1 求字元串長度 110
4.4.2 從字元串中獲取字元 110
4.4.3 連線字元串 111
4.4.4 字元串的轉換 111
4.4.5 從控制台讀取字元串 112
4.4.6 從控制台讀取字元 112
4.4.7 字元串比較 112
4.4.8 獲得子字元串 114
4.4.9 獲取字元串中的字元或者子串 115
4.4.10 字元串和數字間的轉換 116
4.5 示例學習 117
4.5.1 猜測生日 118
4.5.2 將十六進制數轉換為十進制數 121
4.5.3 使用字元串修改彩票程式 122
4.6 格式化控制台輸出 123
關鍵術語 126
本章小結 127
測試題 127
編程練習題 127
第5章 循環 133
5.1 引言 133
5.2 while循環 134
5.2.1 示例學習:猜數字 136
5.2.2 循環設計策略 138
5.2.3 示例學習:多個減法測試題 138
5.2.4 使用標記值控制循環 140
5.2.5 輸入和輸出重定向 141
5.3 do-while循環 143
5.4 for循環 144
5.5 採用哪種循環 147
5.6 嵌套循環 149
5.7 最小化數值錯誤 151
5.8 示例學習 152
5.8.1 求最大公約數 152
5.8.2 預測未來學費 154
5.8.3 將十進制數轉換為
十六進制數 155
5.9 關鍵字break和continue 156
5.10 示例學習:判斷回文串 159
5.11 示例學習:顯示素數 160
關鍵術語 162
本章小結 163
測試題 163
編程練習題 163
第6章 方法 171
6.1 引言 171
6.2 定義方法 172
6.3 調用方法 173
6.4 void方法示例 175
6.5 通過傳值進行參數傳遞 178
6.6 模組化代碼 181
6.7 示例學習:將十六進制數轉換為十進制數 183
6.8 重載方法 185
6.9 變數的作用域 187
6.10 示例學習:生成隨機字元 188
6.11 方法抽象和逐步求精 190
6.11.1 自頂向下的設計 191
6.11.2 自頂向下和自底向上的實現 192
6.11.3 實現細節 193
6.11.4 逐步求精的優勢 196
關鍵術語 196
本章小結 197
測試題 197
編程練習題 197
第7章 一維數組 207
7.1 引言 207
7.2 數組的基礎知識 207
7.2.1 聲明數組變數 208
7.2.2 創建數組 208
7.2.3 數組大小和默認值 209
7.2.4 訪問數組元素 209
7.2.5 數組初始化語法 210
7.2.6 處理數組 210
7.2.7 foreach循環 212
7.3 示例學習:分析數字 214
7.4 示例學習:一副牌 215
7.5 數組的複製 217
7.6 將數組傳遞給方法 218
7.7 從方法中返回數組 221
7.8 示例學習:統計每個字母出現的次數 221
7.9 可變長參數列表 224
7.10 數組的查找 225
7.10.1 線性查找法 225
7.10.2 二分查找法 226
7.11 數組的排序 228
7.12 Arrays類 230
7.13 命令行參數 232
7.13.1 向main方法傳遞字元串 232
7.13.2 示例學習:計算器 232
關鍵術語 234
本章小結 235
測試題 235
編程練習題 235
第8章 多維數組 242
8.1 引言 242
8.2 二維數組的基礎知識 242
8.2.1 聲明二維數組變數並創建二維數組 243
8.2.2 獲取二維數組的長度 244
8.2.3 鋸齒數組 244
8.3 處理二維數組 245
8.4 將二維數組傳遞給方法 247
8.5 示例學習:復選題測驗評分 248
8.6 示例學習:找出距離最近的點對 249
8.7 示例學習:數獨 251
8.8 多維數組 254
8.8.1 示例學習:每日溫度和濕度 255
8.8.2 示例學習:猜生日 256
本章小結 258
測試題 258
編程練習題 258
第9章 對象和類 270
9.1 引言 270
9.2 為對象定義類 270
9.3 示例:定義類和創建對象 272
9.4 使用構造方法構造對象 277
9.5 通過引用變數訪問對象 278
9.5.1 引用變數和引用類型 278
9.5.2 訪問對象的數據和方法 279
9.5.3 引用數據域和null值 279
9.5.4 基本類型變數和引用類型變數的區別 280
9.6 使用Java庫中的類 282
9.6.1 Date類 282
9.6.2 Random類 283
9.6.3 Point2D類 283
9.7 靜態變數、常量和方法 284
9.8 可見性修飾符 289
9.9 數據域封裝 291
9.10 向方法傳遞對象參數 294
9.11 對象數組 297
9.12 不可變對象和類 299
9.13 變數的作用域 301
9.14 this引用 302
9.14.1 使用this引用隱藏數據域 302
9.14.2 使用this調用構造方法 303
關鍵術語 304
本章小結 304
測試題 305
編程練習題 305
第10章 面向對象思考 309
10.1 引言 309
10.2 類的抽象和封裝 309
10.3 面向對象的思考 313
10.4 類的關係 315
10.4.1 關聯 316
10.4.2 聚集和組合 317
10.5 示例學習:設計Course類 318
10.6 示例學習:設計棧類 320
10.7 將基本數據類型值作為對象處理 322
10.8 基本類型和包裝類類型之間的自動轉換 325
10.9 BigInteger和BigDecimal類 326
10.10 String類 327
10.10.1 構造字元串 327
10.10.2 不可變字元串與限定字元串 328
10.10.3 字元串的替換和分隔 329
10.10.4 依照模式匹配、替換和分隔 329
10.10.5 字元串與數組之間的轉換 330
10.10.6 將字元和數值轉換成字元串 331
10.10.7 格式化字元串 331
10.11 StringBuilder和StringBuffer類 333
10.11.1 修改StringBuilder中的字元串 334
10.11.2 toString、capacity、length、setLength和charAt方法 335
10.11.3 示例學習:判斷回文串時忽略既非字母又非數字的字元 336
關鍵術語 338
本章小結 339
測試題 339
編程練習題 339
第11章 繼承和多態 347
11.1 引言 347
11.2 父類和子類 347
11.3 使用super關鍵字 353
11.3.1 調用父類的構造方法 353
11.3.2 構造方法鏈 354
11.3.3 調用父類的方法 355
11.4 方法重寫 356
11.5 方法重寫與重載 357
11.6 Object類及其toString()方法 359
11.7 多態 359
11.8 動態綁定 360
11.9 對象轉換和instanceof運算符 363
11.10 Object類的equals方法 367
11.11 ArrayList類 368
11.12 對於列表有用的方法 374
11.13 示例學習:自定義棧類 374
11.14 protected數據和方法 376
11.15 防止擴展和重寫 378
關鍵術語 378
本章小結 379
測試題 379
編程練習題 380
第12章 異常處理和文本I/O 384
12.1 引言 384
12.2 異常處理概述 385
12.3 異常類型 389
12.4 關於異常處理的更多知識 391
12.4.1 聲明異常 392
12.4.2 拋出異常 392
12.4.3 捕獲異常 393
12.4.4 從異常中獲取信息 394
12.4.5 示例學習:聲明、拋出和捕獲異常 396
12.5 finally子句 399
12.6 何時使用異常 400
12.7 重新拋出異常 401
12.8 鏈式異常 402
12.9 創建自定義異常類 403
12.10 File類 405
12.11 檔案輸入和輸出 408
12.11.1 使用PrintWriter寫數據 408
12.11.2 使用try-with-resources自動關閉資源 409
12.11.3 使用Scanner讀數據 410
12.11.4 Scanner如何工作 411
12.11.5 示例學習:替換文本 412
12.12 從Web上讀取數據 414
12.13 示例學習:Web爬蟲 416
關鍵術語 418
本章小結 418
測試題 419
編程練習 419
第13章 抽象類和接口 424
13.1 引言 424
13.2 抽象類 424
13.2.1 為何要使用抽象方法 427
13.2.2 抽象類的幾點說明 428
13.3 示例學習:抽象的Number類 429
13.4 示例學習:Calendar和GregorianCalendar 431
13.5 接口 434
13.6 Comparable接口 436
13.7 Cloneable接口 440
13.8 接口與抽象類 444
13.9 示例學習:Rational類 447
13.10 類的設計原則 452
13.10.1 內聚性 452
13.10.2 一致性 452
13.10.3 封裝性 452
13.10.4 清晰性 453
13.10.5 完整性 453
13.10.6 實例和靜態 453
13.10.7 繼承與聚合 454
13.10.8 接口和抽象類 454
關鍵術語 454
本章小結 455
測試題 455
編程練習題 455
第14章 JavaFX基礎 459
14.1 引言 459
14.2 JavaFX與Swing以及AWT的比較 459
14.3 JavaFX程式的基本結構 460
14.4 面板、UI組件以及形狀 462
14.5 屬性綁定 465
14.6 節點的通用屬性和方法 468
14.7 Color類 469
14.8 Font類 470
14.9 Image和ImageView類 472
14.10 布局面板 474
14.10.1 FlowPane 475
14.10.2 GridPane 477
14.10.3 BorderPane 478
14.10.4 HBox和VBox 480
14.11 形狀 482
14.11.1 Text 482
14.11.2 Line 484
14.11.3 Rectangle 485
14.11.4 Circle和Ellipse 487
14.11.5 Arc 488
14.11.6 Polygon和Polyline 491
14.12 示例學習:ClockPane類 493
關鍵術語 497
本章小結 498
測試題 498
編程練習題 498
第15章 事件驅動編程和動畫 504
15.1 引言 504
15.2 事件和事件源 506
15.3 註冊處理器和處理事件 507
15.4 內部類 511
15.5 匿名內部類處理器 512
15.6 使用lambda表達式簡化事件處理 514
15.7 示例學習:貸款計算器 517
15.8 滑鼠事件 519
15.9 鍵盤事件 520
15.10 可觀察對象的監聽器 523
15.11 動畫 525
15.11.1 PathTransition 525
15.11.2 FadeTransition 528
15.11.3 Timeline 530
15.12 示例學習:彈球 532
關鍵術語 535
本章小結 535
測試題 536
編程練習題 536
第16章 JavaFX UI組件和多媒體 542
16.1 引言 542
16.2 Labeled和Label 543
16.3 按鈕 545
16.4 複選框 547
16.5 單選按鈕 549
16.6 文本域 551
16.7 文本區域 553
16.8 組合框 556
16.9 列表視圖 559
16.10 滾動條 562
16.11 滑動條 564
16.12 示例學習:開發一個井字遊戲 567
16.13 視頻和音頻 572
16.14 示例學習:國旗和國歌 575
本章小結 577
測試題 578
編程練習題 578
第17章 二進制 I/O 584
17.1 引言 584
17.2 在Java中如何處理文本I/O 584
17.3 文本I/O與二進制I/O 585
17.4 二進制I/O類 587
17.4.1 FileInputStream和FileOutputStream 588
17.4.2 FilterInputStream和FilterOutputStream 590
17.4.3 DataInputStream和DataOutputStream 590
17.4.4 BufferedInputStream和BufferedOutputStream 594
17.5 示例學習:複製檔案 596
17.6 對象I/O 598
17.6.1 Serializable接口 600
17.6.2 序列化數組 601
17.7 隨機訪問檔案 602
關鍵術語 606
本章小結 606
測試題 606
編程練習題 606
第18章 遞歸 609
18.1 引言 609
18.2 示例學習:計算階乘 610
18.3 示例學習:計算斐波那契數 613
18.4 使用遞歸解決問題 615
18.5 遞歸輔助方法 617
18.5.1 遞歸選擇排序 618
18.5.2 遞歸二分查找 618
18.6 示例學習:得到目錄的大小 619
18.7 示例學習:漢諾塔 621
18.8 示例學習:分形 624
18.9 遞歸與疊代 627
18.10 尾遞歸 628
關鍵術語 629
本章小結 629
測試題 630
編程練習題 630
附錄A Java關鍵字 637
附錄B ASCII字元集 638
附錄C 操作符優先權表 639
附錄D Java修飾符 640
附錄E 特殊浮點值 641
附錄F 數系 642
附錄G 位操作 646
附錄H 正則表達式 647
附錄I  枚舉類型 651

相關詞條

熱門詞條

聯絡我們