Java語言程式設計(第3版)(2018年清華大學出版社出版的圖書)

Java語言程式設計(第3版)(2018年清華大學出版社出版的圖書)

本詞條是多義詞,共2個義項
更多義項 ▼ 收起列表 ▲

《Java語言程式設計(第3版)》是由沈澤剛主編,2018年清華大學出版社出版的21世紀高等學校計算機類課程創新規劃教材。該教材可作為高等院校計算機專業或相關專業的“Java程式設計”或“面向對象程式設計”課程的教材,也可作為Java認證考試及編程愛好者的參考資料。

該教材以Java SE 8為基礎,講解了Java程式語言、Java面向對象技術和Java核心類庫。全書共18章,主要內容包括Java語言基礎(數據類型、運算符與表達式、程式流程控制)、類與對象基礎、數組與字元串、Java面向對象特徵(類的繼承與多態、內部類與註解類型、接口與Lambda表達式)、常用核心類、泛型與集合框架、異常處理、輸入輸出、JavaFX圖形界面及事件處理、常用控制項、JDBC資料庫編程、並發編程基礎、網路編程等。每章配有編程練習題。

基本介紹

  • 書名:Java語言程式設計(第3版)
  • 作者:沈澤剛
  • ISBN:9787302485520
  • 類別:21世紀高等學校計算機類課程創新規劃教材
  • 頁數:470頁
  • 出版社:清華大學出版
  • 出版時間:2018年4月1日
  • 裝幀:平裝
  • 開本:16開
  • 字數:744千字
  • CIP核字號:2017237789
成書過程,修訂情況,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,

成書過程

修訂情況

該教材在第2版的基礎上增加了Java SE 8的新特性,如接口的默認方法和靜態方法、Lambda表達式、新的日期/時間API、StreamAPI,圖形用戶界面用JavaFX替換了Swing,另外增加了Java網路編程一章,其他章節也做了部分修訂。
該教材由沈澤剛主編,傘曉麗、彭霞、孫蕾、宋微、董研、張麗娟等教師參加了部分編寫和資料整理工作。在寫作中參考了相關文獻。

出版工作

2018年4月1日,該教材由清華大學出版社出版。
出版社工作人員
責任編輯封面設計責任校對責任印製
魏江江、趙曉寧
劉鍵
時翠蘭
董瑾

內容簡介

全書共18章,主要內容如下:
第1章介紹Java語言的起源和發展、Java開發環境的構建、簡單Java程式的開發和運行、程式設計風格與文檔以及集成開發環境Eclipse的使用。
第2章介紹數據類型、常用運算符、表達式以及數據類型的轉換等。
第3章介紹程式的流程控制結構,包括選擇結構和循環結構。重點介紹if結構、switch結構、while循環、do-while循環以及for循環結構。
第4章首先介紹了面向對象編程的基本概念,然後講解Java類的定義以及對象的創建,其中還包括方法的設計、static修飾符的使用、包的概念以及類的導入等。
第5和第6章介紹Java數組和字元串及其套用,包括數組和多維數組、String類、StringBuilder類和StringBuffer類,另外還介紹了Arrays類的使用、格式化輸出等。
第7章介紹類的繼承與多態,其中包括繼承性、封裝性、多態性以及對象轉換等。
第8章介紹Java常用核心類,包括Object類、Math類、基本數據類型包裝類等,另外介紹了Java8新增的日期-時間API相關的類。
第9章介紹內部類、枚舉類型和註解類型,包括各種類型的內部類、枚舉的定義與使用,標準註解的使用、自定義註解類型。
第10章介紹接口和Lambda表達式,包括接口的定義、接口繼承、接口實現以及在接口中定義靜態方法和默認方法。此外,還介紹了Lambda表達式的使用。
第11章介紹Java集合框架,包括泛型編程基本概念、各種類型集合接口與類的使用、Collections類的常用方法,同時還介紹了StreamAPI的簡單用法。
第12章介紹Java異常處理,包括異常類型、異常處理機制、自定義異常、斷言的使用。
第13章介紹Java輸入輸出,包括二進制流和文本流的使用、對象序列化以及Files類的常用操作。
第14和第15章介紹JavaFX圖形界面編程,包括界面布局面板、JavaFX各類形狀的使用、事件處理,還包括圖像和特效、多媒體和動畫以及各種常用控制項的使用。
第16章介紹JDBC資料庫編程基礎,包括資料庫和MySQL基礎,資料庫訪問步驟、常用的JDBCAPI以及DAO設計模式等。
第17章介紹Java並發編程基礎,包括多執行緒編程、執行緒的狀態與調度、執行緒同步與協調、並發工具等。
第18章介紹Java網路編程,包括基於TCP的Java套接字和基於UDP的編程、基於HTTP的URL編程等。

教材目錄

1.1Java起源與發展1
1.1.1Java的起源1
1.1.2Java的發展歷程2
1.1.3Java語言的優點3
1.2Java平台與開發環境3
1.2.1Java平台與套用領域3
1.2.2JDK、JRE和JVM4
1.2.3Java位元組碼與平台獨立4
1.2.4JDK的下載與安裝5
1.2.5JavaAPI文檔6
1.3Java程式基本結構6
1.3.1Java程式開發步驟6
1.3.2第一個程式分析8
1.4程式文檔風格和注釋9
1.4.1一致的縮進和空白9
1.4.2塊的風格9
1.4.3Java程式注釋10
1.5Eclipse集成開發環境10
1.6小結12
編程練習12
第2章Java語言基礎13
2.1簡單程式的開發13
2.1.1從鍵盤讀取數據14
2.1.2變數與賦值15
2.1.3Java標識符15
2.1.4Java關鍵字16
2.2數據類型16
2.2.1數據類型概述16
2.2.2字面值和常量17
2.2.3整數類型17
2.2.4浮點類型19
2.2.5字元類型20
2.2.6布爾類型21
2.2.7字元串類型22
2.3運算符23
2.3.1算術運算符23
2.3.2關係運算符25
2.3.3邏輯運算符25
2.3.4賦值運算符26
2.3.5位運算符28
2.3.6運算符的優先權和結合性30
2.4數據類型轉換31
2.4.1自動類型轉換31
2.4.2強制類型轉換32
2.4.3表達式中類型自動提升33
2.5小結34
編程練習34
第3章選擇與循環36
3.1選擇36
3.1.1單分支if語句36
3.1.2雙分支if-else語句37
3.1.3嵌套的if語句和多分支的if-else語句39
3.1.4條件運算符40
3.1.5switch語句結構41
3.2循環43
3.2.1while循環43
3.2.2do-while循環45
3.2.3for循環45
3.2.4循環的嵌套47
3.2.5break語句和continue語句47
3.3示例學習49
3.3.1任意抽取一張牌49
3.3.2求最大公約數50
3.3.3列印輸出若干素數51
3.4小結52
編程練習53
第4章類和對象55
4.1面向對象概述55
4.1.1OOP的產生55
4.1.2面向對象的基本概念56
4.1.3面向對象基本特徵57
4.1.4OOP的優勢58
4.2為對象定義類58
4.2.1類的定義59
4.2.2對象的使用62
4.2.3理解棧與堆64
4.2.4用UML圖表示類64
4.3方法設計65
4.3.1如何設計方法65
4.3.2方法的調用67
4.3.3方法重載67
4.3.4構造方法68
4.3.5this關鍵字的使用70
4.3.6方法參數的傳遞71
4.4靜態變數和靜態方法72
4.4.1靜態變數72
4.4.2靜態方法74
4.4.3單例模式75
4.4.4遞歸76
4.5對象初始化和清除77
4.5.1實例變數的初始化77
4.5.2靜態變數的初始化79
4.5.3垃圾回收器80
4.5.4變數作用域和生存期81
4.6包與類的導入82
4.6.1包82
4.6.2類的導入84
4.6.3Java編譯單元85
4.7小結85
編程練習86
第5章數組90
5.1創建和使用數組90
5.1.1數組定義90
5.1.2增強的for循環93
5.1.3數組元素的複製93
5.1.4數組參數與返回值95
5.1.5可變參數的方法96
5.1.6實例:隨機抽取4張牌97
5.1.7實例:一個整數棧類98
5.2Arrays類99
5.2.1數組的排序100
5.2.2元素的查找100
5.2.3數組元素的複製101
5.2.4填充數組元素101
5.2.5數組的比較102
5.3二維數組103
5.3.1二維數組定義103
5.3.2數組元素的使用104
5.3.3數組初始化器105
5.3.4實例:矩陣乘法105
5.3.5不規則二維數組106
5.4小結108
編程練習108
第6章字元串111
6.1String類111
6.1.1創建String類對象111
6.1.2字元串基本操作112
6.1.3字元串查找114
6.1.4字元串轉換為數組114
6.1.5字元串比較115
6.1.6字元串的拆分與組合117
6.1.7String對象的不變性118
6.1.8命令行參數118
6.2格式化輸出119
6.3StringBuilder類和StringBuffer類122
6.3.1創建StringBuilder對象122
6.3.2StringBuilder的訪問和修改122
6.3.3運算符“+”的重載124
6.4小結124
編程練習124
第7章繼承與多態126
7.1類的繼承126
7.1.1類繼承的實現126
7.1.2方法覆蓋129
7.1.3super關鍵字130
7.1.4調用父類的構造方法132
7.2封裝性與訪問修飾符133
7.2.1類的訪問許可權133
7.2.2類成員的訪問許可權134
7.3防止類擴展和方法覆蓋135
7.3.1final修飾類135
7.3.2final修飾方法136
7.3.3final修飾變數136
7.4抽象類137
7.5對象轉換與多態138
7.5.1對象轉換139
7.5.2instanceof運算符140
7.5.3多態與動態綁定140
7.6小結142
編程練習142
第8章Java常用核心類144
8.1Object:終極父類144
8.1.1toString()方法145
8.1.2equals()方法145
8.1.3hashCode()方法146
8.1.4clone()方法147
8.1.5finalize()方法148
8.2Math類149
8.3基本類型包裝類151
8.3.1Character類151
8.3.2Boolean類152
8.3.3創建數值類對象153
8.3.4數值類的常量154
8.3.5自動裝箱與自動拆箱155
8.3.6字元串轉換為基本類型156
8.3.7BigInteger和BigDecimal類156
8.4日期-時間API158
8.4.1本地日期類LocalDate158
8.4.2本地時間類LocalTime160
8.4.3本地日期時間類LocalDateTime161
8.4.4Instant類、Duration類和Period類162
8.4.5其他常用類164
8.4.6日期時間解析和格式化164
8.5小結166
編程練習166
第9章內部類、枚舉和註解168
9.1內部類168
9.1.1成員內部類169
9.1.2局部內部類170
9.1.3匿名內部類171
9.1.4靜態內部類173
9.2枚舉類型175
9.2.1枚舉類型的定義175
9.2.2枚舉類型的方法175
9.2.3枚舉在switch中的套用176
9.2.4枚舉類型的構造方法177
9.3註解類型178
9.3.1註解概述179
9.3.2標準註解179
9.3.3定義註解類型181
9.3.4標準元註解183
9.4小結184
編程練習185
第10章接口與Lambda表達式188
10.1接口188
10.1.1接口定義188
10.1.2接口的實現189
10.1.3接口的繼承190
10.1.4接口類型的使用192
10.1.5常量192
10.2靜態方法和默認方法192
10.2.1靜態方法193
10.2.2默認方法193
10.2.3解決默認方法衝突193
10.3接口示例195
10.3.1Comparable接口195
10.3.2Comparator接口197
10.4Lambda表達式198
10.4.1Lambda表達式簡介198
10.4.2函式式接口199
10.4.3Lambda表達式的語法199
10.4.4預定義的函式式接口200
10.4.5方法引用與構造方法引用204
10.5小結206
編程練習206
第11章泛型與集合209
11.1泛型介紹209
11.1.1泛型類型209
11.1.2泛型方法211
11.1.3通配符(?)的使用212
11.1.4有界類型參數213
11.1.5類型擦除214
11.2集合框架215
11.3List接口及實現類217
11.3.1List的操作217
11.3.2ArrayList類218
11.3.3遍歷集合元素219
11.3.4數組轉換為List對象222
11.3.5Vector類和Stack類222
11.4Set接口及實現類222
11.4.1HashSet類222
11.4.2用Set對象實現集合運算223
11.4.3TreeSet類223
11.4.4對象順序224
11.5Queue接口及實現類225
11.5.1Queue接口和Deque接口226
11.5.2ArrayDeque類和LinkedList類227
11.5.3集合轉換228
11.6Map接口及實現類229
11.6.1Map接口229
11.6.2Map接口的實現類230
11.7Collections類233
11.8StreamAPI235
11.8.1流概述236
11.8.2創建與獲得流236
11.8.3連線流和限制流237
11.8.4過濾流238
11.8.5流轉換239
11.8.6流規約241
11.8.7收集結果241
11.8.8基本類型流242
11.8.9並行流243
11.9小結244
編程練習245
第12章異常處理248
12.1異常與異常類248
12.1.1異常的概念248
12.1.2異常類249
12.2異常處理251
12.2.1異常的拋出與捕獲251
12.2.2try-catch-finally語句252
12.2.3用catch捕獲多個異常254
12.2.4聲明方法拋出異常255
12.2.5用throw語句拋出異常257
12.2.6try-with-resources語句258
12.3自定義異常類260
12.4斷言262
12.4.1使用斷言262
12.4.2開啟和關閉斷言263
12.4.3何時使用斷言263
12.4.4斷言示例264
12.5小結266
編程練習266
第13章輸入輸出268
13.1二進制I/O流268
13.1.1File類套用269
13.1.2文本I/O與二進制I/O270
13.1.3InputStream類和OutputStream類270
13.1.4常用二進制I/O流271
13.1.5標準輸入輸出流276
13.2文本I/O流276
13.2.1Reader類和Writer類276
13.2.2FileReader類和FileWriter類277
13.2.3BufferedReader類和BufferedWriter類278
13.2.4PrintWriter類279
13.2.5使用Scanner對象280
13.3對象序列化281
13.3.1對象序列化與對象流281
13.3.2向ObjectOutputStream中寫入對象282
13.3.3從ObjectInputStream中讀出對象282
13.3.4序列化數組284
13.4NIO和NIO.2286
13.4.1檔案系統和路徑286
13.4.2FileSystem類286
13.4.3Path對象287
13.5Files類操作288
13.5.1創建和刪除目錄及檔案288
13.5.2檔案屬性操作289
13.5.3檔案和目錄的複製與移動291
13.5.4獲取目錄的對象292
13.5.5小檔案的讀寫292
13.5.6使用Files類創建流對象294
13.6小結296
編程練習297
第14章JavaFX基礎299
14.1JavaFX概述299
14.1.1JavaGUI編程簡史299
14.1.2JavaFX基本概念300
14.1.3添加JavaFX軟體包300
14.2JavaFX程式基本結構300
14.2.1舞台和場景301
14.2.2場景圖和節點302
14.2.3Application類生命周期方法303
14.2.4JavaFX程式啟動303
14.3JavaFX屬性與綁定304
14.3.1JavaFX屬性304
14.3.2屬性綁定306
14.4JavaFX界面布局307
14.4.1JavaFX坐標系308
14.4.2Pane面板308
14.4.3HBox面板309
14.4.4VBox面板311
14.4.5BorderPane面板311
14.4.6FlowPane面板312
14.4.7GridPane面板313
14.4.8StackPane面板315
14.4.9AnchorPane面板316
14.4.10使用CSS設定控制項樣式317
14.5Color和Font類320
14.5.1Color類320
14.5.2Font類321
14.6JavaFX形狀322
14.6.1Line類322
14.6.2Rectangle類325
14.6.3Circle類325
14.6.4Ellipse類326
14.6.5Arc類326
14.6.6Polygon類327
14.6.7Text類328
14.7Image和ImageView類330
14.8特效實現333
14.8.1陰影效果333
14.8.2模糊效果334
14.8.3倒影效果335
14.8.4發光效果335
14.9小結336
編程練習337
第15章事件處理與常用控制項340
15.1事件處理340
15.1.1事件處理模型340
15.1.2事件類和事件類型341
15.1.3使用事件處理器342
15.1.4動作事件344
15.1.5滑鼠事件346
15.1.6鍵盤事件348
15.1.7為屬性添加監聽器350
15.2常用控制項352
15.2.1Label類352
15.2.2Button類354
15.2.3TextField類和PasswordField類357
15.2.4TextArea類359
15.2.5CheckBox類361
15.2.6RadioButton類363
15.2.7ComboBox類366
15.2.8Slider類369
15.2.9選單設計370
15.2.10FileChooser類376
15.3音頻和視頻380
15.4動畫384
15.4.1過渡動畫384
15.4.2淡出效果385
15.4.3移動效果387
15.4.4縮放效果388
15.4.5旋轉效果389
15.4.6時間軸動畫389
15.5小結392
編程練習393
第16章JDBC資料庫編程395
16.1資料庫系統簡介395
16.1.1關係資料庫簡述395
16.1.2資料庫語言SQL396
16.2MySQL資料庫396
16.2.1MySQL的下載與安裝396
16.2.2使用MySQL命令行工具397
16.2.3使用Navicat運算元據庫400
16.3JDBC體系結構400
16.3.1JDBC訪問資料庫401
16.3.2JDBCAPI介紹401
16.4資料庫訪問步驟402
16.4.1載入驅動程式402
16.4.2建立連線對象403
16.4.3創建語句對象405
16.4.4ResultSet對象405
16.4.5關閉有關對象407
16.5訪問MySQL資料庫407
16.5.1創建資料庫和表407
16.5.2訪問MySQL資料庫408
16.6使用PreparedStatement對象409
16.6.1創建PreparedStatement對象409
16.6.2帶參數的SQL語句410
16.7DAO設計模式411
16.8可滾動和可更新的ResultSet418
16.8.1可滾動的ResultSet418
16.8.2可更新的ResultSet418
16.9小結420
編程練習420
第17章並發編程基礎422
17.1Java多執行緒簡介422
17.2創建任務和執行緒423
17.2.1實現Runnable接口424
17.2.2繼承Thread類425
17.2.3主執行緒426
17.3執行緒的狀態與調度427
17.3.1執行緒的狀態427
17.3.2執行緒的優先權和調度427
17.3.3控制執行緒的結束429
17.4執行緒同步與對象鎖430
17.4.1執行緒衝突與原子操作430
17.4.2方法同步431
17.4.3塊同步432
17.5執行緒協調433
17.5.1不正確的設計433
17.5.2監視器模型435
17.6並發工具437
17.6.1原子變數437
17.6.2Executor和ExecutorService438
17.6.3Callable和Future439
17.6.4使用Lock鎖定對象440
17.7小結442
編程練習443
第18章Java網路編程445
18.1網路概述445
18.1.1網路分層與協定445
18.1.2客戶/伺服器結構446
18.1.3IP位址和域名446
18.1.4連線埠號與套接字447
18.2Java套接字通信448
18.2.1套接字API449
18.2.2簡單的客戶和伺服器程式450
18.2.3服務多個客戶452
18.3數據報通信455
18.3.1數據報通信概述455
18.3.2DatagramSocket類和DatagramPacket類456
18.3.3簡單的UDP通信例子457
18.4URL類編程459
18.4.1理解HTTP459
18.4.2URL和URL類461
18.4.3URLConnection類464
18.5小結467
編程練習467
參考文獻469
(註:目錄排版順序為從左列至右列

教學資源

  • 配套教材
該教材有配套教材——《Java語言程式設計(第3版)學習指導與習題解析》,書中提供了學習指導、實訓任務及編程練習的參考答案。
書名書號出版社出版時間作者
《Java語言程式設計(第3版)學習指導與習題解析》
9787302496021
清華大學出版社
2018.06.01
沈澤剛
  • 課程資源
該教材還提供PPT教學課件、程式原始碼、大綱、試卷、30小時微課視頻、179個編程案例、166道上機練習題等資源。

教材特色

該教材作為面向初學者的教程,編寫和取材體現Java面向對象編程思想和面向問題求解的理念。採用基礎優先的方式,從編程基礎開始,逐步引入面向對象思想。
該教材包含三大主題,分別是:Java程式語言、Java面向對象思想、Java核心類庫。
該教材吸取了中國國內外有關著作和資料的內容,強調面向問題求解的教學方法是該教材的特色。

作者簡介

沈澤剛,1964年生,男,漢族,渤海大學信息科學與技術學院副教授、碩士生導師,研究方向為計算機套用技術。

相關詞條

熱門詞條

聯絡我們