發表於2024-11-27
本書是Java語言的經典教材,中文版分為《Java語言程序設計基礎篇》和《Java語言程序設計進階篇》,主要介紹程序設計基礎、麵嚮對象程序設計、算法和數據結構、GUI程序設計、高級Java程序設計等內容。本書以實例驅動的方式,貫徹問題解決的思想,幫助讀者掌握Java語言的開發技術,並解決實際工程問題。基礎篇從Java語言的特點入手,涵蓋Java語言的語法、麵嚮對象程序設計、圖形用戶界麵設計等基礎性內容。可作為高等院校Java程序設計課程的教材。
Y. Daniel Liang:普度大學終身教授,阿姆斯特朗亞特蘭大州立大學計算機科學係教授。他所編寫的Java教程在美國大學Java課程中采用率高,同時他還兼任Prentice Hall Java係列叢書的編輯。梁勇(Y. Daniel Liang),阿姆斯特朗亞特蘭大州立大學計算機科學係Yamacraw教授。之前曾是普渡大學計算機科學係副教授,並曾兩次獲得普渡大學大學傑齣研究奬。他所編寫的Java教程在美國大學Java課程中采用率高。
齣版者的話
前言
第1章 計算機、程序和Java概述 1
1.1 引言 2
1.2 什麼是計算機 2
1.3 編程語言 7
1.4 操作係統 9
1.5 Java、萬維網以及其他 10
1.6 Java語言規範、API、JDK和IDE 11
1.7 一個簡單的Java程序 12
1.8 創建、編譯和執行Java程序 15
1.9 程序設計風格和文檔 18
1.10 程序設計錯誤 20
1.11 使用NetBeans開發Java程序 23
1.12 使用Eclipse開發Java程序 25
第2章 基本程序設計 33
2.1 引言 34
2.2 編寫簡單的程序 34
2.3 從控製颱讀取輸入 37
2.4 標識符 39
2.5 變量 40
2.6 賦值語句和賦值錶達式 41
2.7 命名常量 43
2.8 命名習慣 44
2.9 數值數據類型和操作 44
2.10 數值型直接量 48
2.11 錶達式求值以及操作符優先級 50
2.12 示例學習:顯示當前時間 52
2.13 增強賦值操作符 54
2.14 自增和自減操作符 55
2.15 數值類型轉換 56
2.16 軟件開發過程 59
2.17 示例學習:整錢兌零 63
2.18 常見錯誤和陷阱 65
第3章 選擇 75
3.1 引言 76
3.2 boolean數據類型 76
3.3 if語句 78
3.4 雙分支if-else語句 80
3.5 嵌套的if語句和多分支if-else語句 81
3.6 常見錯誤和陷阱 83
3.7 産生隨機數 87
3.8 示例學習:計算身體質量指數 89
3.9 示例學習:計算稅率 90
3.10 邏輯操作符 93
3.11 示例學習:判定閏年 97
3.12 示例學習:彩票 98
3.13 switch語句 100
3.14 條件錶達式 103
3.15 操作符的優先級和結閤規則 104
3.16 調試 106
第4章 數學函數、字符和字符串 119
4.1 引言 120
4.2 常用數學函數 120
4.3 字符數據類型和操作 125
4.4 String類型 130
4.5 示例學習 139
4.6 格式化控製颱輸齣 145
第5章 循環 157
5.1 引言 158
5.2 while循環 158
5.3 do-while循環 168
5.4 for循環 170
5.5 采用哪種循環 174
5.6 嵌套循環 176
5.7 最小化數值錯誤 178
5.8 示例學習 179
5.9 關鍵字break和continue 184
5.10 示例學習:判斷迴文串 187
5.11 示例學習:顯示素數 188
第6章 方法 203
6.1 引言 204
6.2 定義方法 204
6.3 調用方法 206
6.4 void方法示例 209
6.5 通過傳值進行參數傳遞 212
6.6 模塊化代碼 215
6.7 示例學習:將十六進製數轉換為十進製數 217
6.8 重載方法 219
6.9 變量的作用域 222
6.10 示例學習:生成隨機字符 223
6.11 方法抽象和逐步求精 225
第7章 一維數組 245
7.1 引言 246
7.2 數組的基礎知識 246
7.3 示例學習:分析數字 253
7.4 示例學習:一副牌 254
7.5 數組的復製 256
7.6 將數組傳遞給方法 257
7.7 從方法中返迴數組 260
7.8 示例學習:統計每個字母齣現的次數 261
7.9 可變長參數列錶 264
7.10 數組的查找 265
7.11 數組的排序 269
7.12 Arrays類 270
7.13 命令行參數 272
第8章 多維數組 287
8.1 引言 288
8.2 二維數組的基礎知識 288
8.3 處理二維數組 291
8.4 將二維數組傳遞給方法 293
8.5 示例學習:多選題測驗評分 294
8.6 示例學習:找齣距離最近的點對 296
8.7 示例學習:數獨 298
8.8 多維數組 301
第9章 對象和類 321
9.1 引言 322
9.2 為對象定義類 322
9.3 示例:定義類和創建對象 324
9.4 使用構造方法構造對象 329
9.5 通過引用變量訪問對象 330
9.6 使用Java庫中的類 334
9.7 靜態變量、常量和方法 337
9.8 可見性修飾符 342
9.9 數據域封裝 344
9.10 嚮方法傳遞對象參數 347
9.11 對象數組 351
9.12 不可變對象和類 353
9.13 變量的作用域 355
9.14 this引用 356
第10章 麵嚮對象思考 365
10.1 引言 366
10.2 類的抽象和封裝 366
10.3 麵嚮對象的思考 370
10.4 類的關係 373
10.5 示例學習:設計Course類 376
10.6 示例學習:設計棧類 378
10.7 將基本數據類型值作為對象處理 380
10.8 基本類型和包裝類類型之間的自動轉換 383
10.9 BigInteger和BigDecimal類 384
10.10 String類 386
10.11 StringBuilder和StringBuffer類 392
第11章 繼承和多態 409
11.1 引言 410
11.2 父類和子類 410
11.3 使用super關鍵字 416
11.4 方法重寫 419
11.5 方法重寫與重載 420
11.6 Object類及其toString()方法 422
11.7 多態 423
11.8 動態綁定 424
11.9 對象轉換和instanceof運算符 427
11.10 Object類的equals方法 431
11.11 ArrayList類 432
11.12 對於列錶有用的方法 438
11.13 示例學習:自定義棧類 439
11.14 protected數據和方法 440
11.15 防止擴展和重寫 442
第12章 異常處理和文本I/O 449
12.1 引言 450
12.2 異常處理概述 450
12.3 異常類型 455
12.4 關於異常處理的更多知識 458
12.5 finally子句 466
12.6 何時使用異常 467
12.7 重新拋齣異常 468
12.8 鏈式異常 469
12.9 創建自定義異常類 470
12.10 File類 473
12.11 文件輸入和輸齣 476
12.12 從Web上讀取數據 482
12.13 示例學習:Web爬蟲 484
第13章 抽象類和接口 495
13.1 引言 496
13.2 抽象類 496
13.3 示例學習:抽象的Number類 501
13.4 示例學習:Calendar和GregorianCalendar 503
13.5 接口 506
13.6 Comparable接口 509
13.7 Cloneable接口 513
13.8 接口與抽象類 517
13.9 示例學習:Rational類 520
13.10 類的設計原則 525
第14章 JavaFX基礎 535
14.1 引言 536
14.2 JavaFX與Swing以及AWT的比較 536
14.3 JavaFX程序的基本結構 536
14.4 麵闆、UI組件以及形狀 539
14.5 屬性綁定 542
14.6 節點的通用屬性和方法 545
14.7 Color類 546
14.8 Font類 547
14.9 Image和ImageView類 549
14.10 布局麵闆 552
14.11 形狀 560
14.12 示例學習:ClockPane類 572
第15章 事件驅動編程和動畫 585
15.1 引言 586
15.2 事件和事件源 588
15.3 注冊處理器和處理事件 589
15.4 內部類 593
15.5 匿名內部類處理器 594
15.6 使用lambda錶達式簡化事件處理 597
15.7 示例學習:貸款計算器 600
15.8 鼠標事件 602
15.9 鍵盤事件 603
15.10 可觀察對象的監聽器 606
15.11 動畫 608
15.12 示例學習:彈球 616
第16章 JavaFX UI組件和多媒體 629
16.1 引言 630
16.2 Labeled和Label 630
16.3 按鈕 632
16.4 復選框 634
16.5 單選按鈕 637
16.6 文本域 639
16.7 文本區域 641
16.8 組閤框 644
16.9 列錶視圖 647
16.10 滾動條 651
16.11 滑動條 654
16.12 示例學習:開發一個井字遊戲 657
16.13 視頻和音頻 662
16.14 示例學習:國旗和國歌 665
第17章 二進製 I/O 677
17.1 引言 678
17.2 在Java中如何處理文本I/O 678
17.3 文本I/O與二進製I/O 679
17.4 二進製I/O類 680
17.5 示例學習:復製文件 691
17.6 對象I/O 692
17.7 隨機訪問文件 697
第18章 遞歸 705
18.1 引言 706
18.2 示例學習:計算階乘 706
18.3 示例學習:計算斐波那契數 709
18.4 使用遞歸解決問題 712
18.5 遞歸輔助方法 714
18.6 示例學習:得到目錄的大小 717
18.7 示例學習:漢諾塔 719
18.8 示例學習:分形 722
18.9 遞歸與迭代 726
18.10 尾遞歸 727
第19章 泛型 737
19.1 引言 738
19.2 動機和優點 738
19.3 定義泛型類和接口 740
19.4 泛型方法 742
19.5 示例學習:對一個對象數組進行排序 744
19.6 原始類型和嚮後兼容 746
19.7 通配泛型 747
19.8 消除泛型和對泛型的限製 750
19.9 示例學習:泛型矩陣類 752
第20章 綫性錶、棧、隊列和優先隊列 761
20.1 引言 762
20.2 閤集 762
20.3 迭代器 766
20.4 綫性錶 767
20.5 Comparator接口 772
20.6 綫性錶和閤集的靜態方法 773
20.7 示例學習:彈球 777
20.8 嚮量類和棧類 781
20.9 隊列和優先隊列 783
20.10 示例學習:錶達式求值 786
第21章 集閤和映射錶 797
21.1 引言 798
21.2 集閤 798
21.3 比較集閤和綫性錶的性能 806
21.4 示例學習:統計關鍵字 809
21.5 映射錶 810
21.6 示例學習:單詞的齣現次數 815
21.7 單元素與不可變的閤集和映射錶 816
第22章 開發高效算法 821
22.1 引言 822
22.2 使用大O符號來衡量算法效率 822
22.3 示例:確定大O 824
22.4 分析算法的時間復雜度 828
22.5 使用動態編程計算斐波那契數 831
22.6 使用歐幾裏得算法求最大公約數 833
22.7 尋找素數的高效算法 837
22.8 使用分而治之法尋找最近的點對 843
22.9 使用迴溯法解決八皇後問題 846
22.10 計算幾何:尋找凸包 849
第23章 排序 861
23.1 引言 862
23.2 插入排序 862
23.3 冒泡排序 864
23.4 歸並排序 867
23.5 快速排序 870
23.6 堆排序 874
23.7 桶排序和基數排序 881
23.8 外部排序 883
第24章 實現綫性錶、棧、隊列和優先隊列 895
24.1 引言 896
24.2 綫性錶的通用特性 896
24.3 數組綫性錶 900
24.4 鏈錶 906
24.5 棧和隊列 920
24.6 優先隊列
前言許多讀者就本書之前的版本給齣瞭很多反饋。這些評論和建議極大地改進瞭本書。這一版在錶述、組織、示例、練習題以及附錄方麵都進行瞭極大的增強,包括:
用JavaFX取代瞭Swing。JavaFX是一個用於開發JavaGUI程序的新框架,它極大地簡化瞭GUI程序設計,比Swing更易於學習。
在GUI程序設計之前介紹異常處理、抽象類和接口,若教師選擇不教授GUI的內容,可以直接跳過第14~16章。
在第4章便開始介紹對象和字符題串,從而使得學生可以較早地使用對象和字符串來開發有趣的程序。
包含更多新的有趣示例和練習題,用於激發學生興趣。在配套網站(www.cs.armstrong.edu/liang/intro10e/或www.pearsonhighered.com/liang)上還為教師提供瞭100多道編程練習題。
本書采用基礎優先的方法,在設計自定義類之前,首先介紹基本的程序設計概念和技術。選擇語句、循環、方法和數組這樣的基本概念和技術是程序設計的基礎,它們為學生進一步學習麵嚮對象程序設計和高級Java程序設計做好準備。
本書以問題驅動的方式來教授程序設計,將重點放在問題的解決而不是語法上。我們通過使用在各種應用情景中引發思考的問題,使得程序設計的介紹也變得更加有趣。前麵章節的主綫放在問題的解決上,引入閤適的語法和庫以支持編寫解決問題的程序。為瞭支持以問題驅動的方式來教授程序設計,本書提供瞭大量不同難度的問題來激發學生的積極性。為瞭吸引各個專業的學生來學習,這些問題涉及很多應用領域,包括數學、科學、商業、金融、遊戲、動畫以及多媒體等。
本書將程序設計、數據結構和算法無縫集成在一起,采用一種實用性的方式來教授數據結構。首先介紹如何使用各種數據結構來開發高效的算法,然後演示如何實現這些數據結構。通過實現,學生獲得關於數據結構效率,以及如何和何時使用某種數據結構的深入理解。最後,我們設計和實現瞭針對樹和圖的自定義數據結構。
本書廣泛應用於全球各大學的程序設計入門、數據結構和算法課程中。完全版包括程序設計基礎、麵嚮對象程序設計、GUI程序設計、數據結構、算法、並行、網絡、數據庫和Web程序設計。這個版本旨在把學生培養成精通Java的程序員。基礎篇可用於程序設計的第一門課程(通常稱為CS1)。基礎篇包含完全版的前18章內容,前13章適閤準備AP計算機科學考試(APComputerScienceExam)的人員使用。
教授編程的最好途徑是通過示例,而學習編程的唯一途徑是通過動手練習。本書通過示例對基本概念進行瞭解釋,提供瞭大量不同難度的練習題供學生進行實踐。在我們的程序設計課程中,每次課後都布置瞭編程練習。
我們的目標是編寫一本可以通過各種應用場景中的有趣示例來教授問題求解和程序設計的教材。如果您有任何關於如何改進本書的評論或建議,請通過以下方式與我聯係。
Y.DanielLiangy.daniel.liang@gmail.comwww.cs.armstrong.edu/liangwww.pearsonhighered.com/liang本版新增內容本版對各個細節都進行瞭全麵修訂,以增強其清晰性、錶述、內容、例子和練習題。本版主要的改進如下:
更新到Java8版本。
由於Swing被JavaFX所替代,因此所有的GUI示例和練習題都使用JavaFX改寫。
使用lambda錶達式來簡化JavaFX和綫程中的編程。
在配套網站上為教師提供瞭100多道編程練習題,並給齣瞭答案。這些練習題沒有齣現在教材中。
在第4章就引入瞭數學方法,使得學生可以使用數學函數編寫代碼。
在第4章就引入瞭字符串,使得學生可以早點使用對象和字符串開發有趣的程序。
GUI編程放在抽象類和接口之後介紹,若教師選擇不教授GUI內容的話,可以直接跳過這些章節。
第4、14、15和16章是全新的章節。
第28和29章大幅改寫,對最小生成樹和最短路徑使用更加簡化的方法實現。
教學特色本書使用以下要素組織素材:
教學目標在每章開始處列齣學生應該掌握的內容,學完這章後,學生能夠判斷自己是否達到這個目標。
引言提齣代錶性的問題,以便學生對該章內容有一個概括瞭解。
要點提示突齣每節中涵蓋的重要概念。
復習題按節組織,幫助學生復習相關內容並評估掌握的程度。
示例學習通過精心挑選示例,以容易理解的方式教授問題求解和程序設計概念。本書 Java語言程序設計(基礎篇)(英文版·第10版) 下載 mobi epub pdf txt 電子書 格式
Java語言程序設計(基礎篇)(英文版·第10版) 下載 mobi pdf epub txt 電子書 格式 2024
Java語言程序設計(基礎篇)(英文版·第10版) 下載 mobi epub pdf 電子書很厚 但是好像隻有一半內容
評分很厚 但是好像隻有一半內容
評分跟老師推薦的一樣 沒買錯
評分跟老師推薦的一樣 沒買錯
評分很厚 但是好像隻有一半內容
評分好好好!!!
評分很厚 但是好像隻有一半內容
評分跟老師推薦的一樣 沒買錯
評分很厚 但是好像隻有一半內容
Java語言程序設計(基礎篇)(英文版·第10版) mobi epub pdf txt 電子書 格式下載 2024