Java程序設計(第2版)/21世紀大學本科計算機專業(yè)系列教材
定 價:49 元
叢書名:21世紀大學本科計算機專業(yè)系列教材
- 作者:朱慶生,古平 著
- 出版時間:2016/11/1
- ISBN:9787302454786
- 出 版 社:清華大學出版社
- 中圖法分類:TP312.8
- 頁碼:408
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書在內容組織和編寫中充分融入了作者在承擔“Java程序設計”國家精品課程和國家精品資源共享課程建設和教改中的成果,更加契合高等學校課程教學模式和學生漸進式學習的特點。遵循學生學習的認知過程和規(guī)律,以“興趣為先、任務驅動、學以致用”的理念為指導思想,每個章節(jié)編寫均采用WWH教學方式,即通過“理解知識概念(What)、把握原理和規(guī)律(Why)、掌握實現技巧(How)”,有機地將知識、理論融入到編程實踐中。
本書在知識表達形式上改變了傳統(tǒng)教材對知識平鋪直敘的描述方式,而是將大量知識點融入到代碼實例中進行講解,由淺入深,通過對核心知識的實例化來提高學生的編程興趣,讓學生既知道需要學什么,又懂得如何學以致用。與其他Java教材相比,本書在重要知識點和案例選擇中均針對實際問題需求,從軟件開發(fā)者的視角進行講解與分析,各知識點中均凝聚了作者在Java應用開發(fā)中的實際經驗和教研成果,體現了知識的實用性。在注重基本知識的同時,將案例解決方法、過程和原理融入其中,提升學生分析問題和實際編程的能力。
本書可作為高等學校計算機及相關專業(yè)本科生“Java程序設計”課程的教材,也可作為需要運用Java語言開發(fā)應用的軟件人員的自學參考書。
主任: 李曉明副主任: 蔣宗禮盧先和委員: (按姓氏筆畫為序)
馬華東馬殿富王志英王曉東寧洪
劉辰孫茂松李仁發(fā)李文新楊波
吳朝暉何炎祥宋方敏張莉金海
周興社孟祥旭袁曉潔錢樂秋黃國興
曾明廖明宏秘書: 張瑞慶
本書主審: 李曉明
第2版前言FOREWORDJava語言是由Sun公司推出的面向對象程序設計語言,它的平臺無關性特點非常適于網絡應用,因而備受青睞。由于Java的體系和內容非常龐大,如何幫助初學者建立一個完整的知識體系,如何引導讀者將Java的理論、實踐和編程技能融為一體,是本書重點考慮的問題。
本書是網絡教育國家精品課程和國家精品資源共享課程“Java程序設計”的配套教程,適合作為高等學校或網絡教育Java課程的教材。
本書第1版出版5年多來,受到全國廣大師生的好評,已7次印刷發(fā)行。教材第2版根據教育部高等學校計算機類專業(yè)教學指導委員會關于提升學生編程實踐能力的精神,在總結課程教學改革經驗基礎上并結合對第1版教材的反饋意見修訂而成。全書組織架構與第1版保持不變,內容由淺入深地分為4篇: “基礎篇”(第1~6章)介紹面向對象程序設計的基本思想和Java核心語法;“提高篇”(第7~10章)講述如何利用Java編程接口提升程序的實用性、可靠性和界面友好性;“網絡篇”(第11~14章)在介紹網絡通信知識基礎上,講述如何應用Java語言實現桌面應用和Web應用;“實例篇”(第15章)通過具體案例展示Java應用程序的設計過程、編程思路和技術,為項目實戰(zhàn)積累編程經驗。
第2版主要修改包括:
。1) 根據JDK 8版的新特性進行了版本更新,并增加了若干相關知識點,具體內容有: 第1章增加了Eclipse安裝使用,同時刪除原附錄A;第3章增加了數組類Arrays;第5章增加了內部類、泛型、閉包、反射機制和注解技術等;第6章增加了正則表達式、Runtime類、自動裝箱和拆箱技術等;第9章增加了線程池、多線程互斥與同步等;第10章弱化Applet,同時增強了Swing中的高級組件;第11章增加了多播通信技術;第14章增加了數據庫事務管理等內容。
。2) 進一步豐富了導入案例、知識點案例和各章的綜合案例,增加了一系列面向小節(jié)知識的實用小案例,力圖通過解決模擬問題,培養(yǎng)學生思維能力,激發(fā)學生編程興趣。
。3) 提供了與本書配套的、完整的案例源碼,便于學生課后自我練習。
全書由朱慶生、古平、劉驥、葛亮、楊瑞龍編寫。其中,朱慶生教授負責全書體系構思、編寫框架、內容選擇和編寫指導等,并對全書進行審定和修改。第3、4、5、11章由古平副教授編寫,第1、7、12、14章由葛亮副教授編寫,第10、13、15章由劉驥老師編寫,第2、6、8、9章由楊瑞龍老師編寫。
本次修訂,錯誤或遺漏之處在所難免,懇請批評指正。
作者
2016年9月第1版前言FOREWORDJava語言是由Sun公司推出的面向對象程序設計語言,它的平臺無關性特點非常適于網絡應用,因而備受青睞。Java語言正逐步成為全世界程序員使用最多的編程語言,并在桌面應用、Web應用、分布式應用、嵌入式應用系統(tǒng)中發(fā)揮著重要作用。
對于初學Java程序設計語言的人來說,Java的體系和內容顯得非常復雜。如何幫助他們建立一個完整的知識體系,以及如何引導他們將Java的理論、實踐和技能融為一體,是本書重點考慮的問題。
本書是在國家精品課程“Java程序設計”(網絡)和教育部IBM精品課程“Java并發(fā)編程實踐”的建設和實踐教學中總結出來的實用教材,面向全國高校計算機及其相關專業(yè)本科生,也可供Java自學人員、軟件開發(fā)人員參考使用。
全書內容由淺入深分為4篇。第一篇為基礎篇(第1~6章),側重介紹面向對象程序設計的基本思想和Java核心語法,包括Java運行環(huán)境、程序設計基礎、數組、類和對象、繼承與多態(tài)、Java標準類庫等。通過這一部分的學習,讀者能夠掌握Java程序設計的基本方法,并能設計簡單的Java程序。
第二篇為提高篇(第7~10章),講述如何利用Java開放的編程接口提升程序的實用性、可靠性和界面友好性,包括Java的異常處理機制、輸入輸出處理、多線程、圖形界面設計、Applet等。通過這一部分的學習,讀者可以開發(fā)功能更復雜、界面更友好的實用Java應用系統(tǒng)。
第三篇為網絡篇(第11~14章),介紹網絡通信的基礎知識,以及Java對桌面網絡應用和Web應用的支持與實現,內容包括URL與Socket通信技術、Web編程技術、JDBC技術,以及上述技術在Tomcat與Eclipse開發(fā)平臺中的具體實現。這是Java在網絡通信、Web服務中應用的關鍵技術。
第四篇為實例篇(第15章),通過兩個實用案例,分別展示Java桌面應用和Web應用程序的設計過程、思路和關鍵技術,是前3篇知識的綜合應用,也為項目實戰(zhàn)積累開發(fā)經驗。
本書在編寫上具有以下特點:
(1) 注重知識點之間的相互銜接。本書在章節(jié)安排上考慮了知識點之間的依賴關系,分析時層層推進,注重知識點之間的環(huán)環(huán)相扣。
。2) 采用Why—What—How的編寫模式。本書采用“為什么學→學什么→如何學”的教學思路進行內容組織,每章首先通過“本章學習目標”讓讀者明確為什么學,其次通過具體案例引出需要學什么,然后從問題求解過程中逐步引出關鍵知識點,使讀者知道該如何學,能夠輕松、快速掌握Java語言的基本知識體系和編程技巧。
。3) 案例層次化。在章節(jié)進入時有導入案例,主要知識點有印證案例,模擬練習時有實訓案例,所有案例均配有詳細的代碼解釋和分析。導入案例→印證案例→實訓案例,實踐→理論→再實踐,理論知識與實際應用緊密結合。
本書由朱慶生、古平、劉驥、葛亮、楊瑞龍編寫。其中,朱慶生教授負責全書體系構思、框架制定、內容選擇、編寫指導等,并對全書各章進行了審查和修改;第3、4、5、10(部分)、11章由古平編寫;第1、7、12、14章由葛亮編寫;第10(部分)、13、15章和附錄由劉驥編寫;第2、6、8、9章由楊瑞龍編寫。
書中難免有遺漏和不足之處,懇請業(yè)界同仁及讀者朋友提出寶貴意見,以便在修訂時進一步完善。
Java程序設計(第2版)編者
2011年1月
第一篇基礎篇
第1章Java概述3
本章學習目標3
1.1認識Java語言3
1.1.1Java語言的特點4
1.1.2Java平臺的體系結構4
1.2Java運行環(huán)境與開發(fā)環(huán)境5
1.2.1Java運行環(huán)境6
1.2.2安裝6
1.2.3安裝Eclipse開發(fā)工具6
1.3Java程序舉例8
1.3.1用Eclipse編寫第一個Java Application8
1.3.2用Eclipse編寫帶命令行參數的應用程序13
習題與思考15
第2章Java程序設計基礎16
本章學習目標16
2.1標識符和關鍵字16
2.1.1如何定義標識符16
2.1.2關鍵字17
2.1.3注釋17
2.2常量和變量18
2.2.1常量18
2.2.2變量18
2.3基本數據類型19
2.3.1布爾類型19
2.3.2字符類型20Java程序設計(第2版)目錄2.3.3整數類型21
2.3.4浮點類型21
2.3.5各類型數據間的相互轉換22
2.4運算符23
2.4.1算術運算符23
2.4.2賦值運算符25
2.4.3條件運算符26
2.4.4位運算符26
2.4.5關系運算符28
2.4.6邏輯運算符28
2.5表達式29
2.6程序控制語句30
2.6.1if語句30
2.6.2switch語句31
2.6.3while與dowhile語句33
2.6.4for語句34
2.6.5break語句36
2.6.6continue語句38
2.6.7return語句39
2.6.8實用案例40
2.7實訓任務41
習題與思考42
第3章數組44
本章學習目標44
3.1數組使用初探44
3.2一維數組45
3.2.1定義數組45
3.2.2生成數組45
3.2.3初始化數組46
3.2.4訪問數組46
3.2.5實用案例47
3.3二維數組47
3.3.1定義二維數組48
3.3.2二維數組元素的引用48
3.3.3實用案例49
3.4Arrays類50
3.4.1Arrays類及基本使用50
3.4.2實用案例52
3.5數組實訓任務53
習題與思考54
第4章類和對象設計56
本章學習目標56
4.1面向對象基礎56
4.2類和對象初探58
4.3定義類59
4.3.1定義成員變量59
4.3.2定義成員方法60
4.3.3方法重載61
4.4對象62
4.4.1實例化對象62
4.4.2初始化對象62
4.4.3使用對象64
4.4.4使用靜態(tài)變量和方法66
4.4.5清除對象68
4.4.6應用程序與命令行參數68
4.4.7實用案例70
4.5包71
4.5.1包的定義71
4.5.2包的引入72
4.6類及成員修飾符73
4.6.1public73
4.6.2protected74
4.6.3private75
4.6.4final76
4.6.5實用案例77
4.7類和對象實訓任務78
習題與思考83
第5章繼承與多態(tài)84
本章學習目標84
5.1繼承使用初探84
5.2類的繼承85
5.2.1繼承的實現85
5.2.2繼承與重寫87
5.2.3繼承與類型轉換90
5.2.4實用案例91
5.3多態(tài)性92
5.3.1多態(tài)性的概念92
5.3.2實用案例94
5.4抽象類與抽象方法95
5.4.1定義抽象類及實現抽象方法95
5.4.2實用案例95
5.5接口97
5.5.1接口定義97
5.5.2接口實現97
5.5.3實用案例99
5.6內部類100
5.6.1成員內部類101
5.6.2局部內部類101
5.6.3靜態(tài)內部類(嵌套類)101
5.6.4匿名內部類102
5.6.5實用案例102
5.7Java類的高級特性104
5.7.1泛型104
5.7.2Java類加載機制107
5.7.3Java反射機制108
5.7.4實用案例114
5.7.5Java注解120
5.8繼承與多態(tài)實訓任務123
習題與思考125
第6章Java標準類庫128
本章學習目標128
6.1Java標準類庫簡介128
6.2字符串String類和StringBuffer類129
6.2.1String類129
6.2.2StringBuffer類134
6.2.3正則表達式136
6.2.4實用案例139
6.3數據類型包裝器類139
6.3.1整型包裝器類140
6.3.2實用案例141
6.4System類和Runtime類142
6.4.1記錄程序執(zhí)行的時間142
6.4.2復制數組143
6.4.3內存管理143
6.4.4實用案例144
6.5Math類和Random類145
6.5.1Math類145
6.5.2Random類146
6.5.3實用案例147
6.6日期時間實用工具類148
6.6.1Date(日期)148
6.6.2Calendar(日歷)149
6.6.3實用案例151
6.7Java集合類152
6.7.1集合接口152
6.7.2實現List接口的類154
6.7.3實現Set接口的類156
6.7.4通過迭代接口訪問集合類158
6.7.5映射接口160
6.7.6實現Map接口的類162
6.8標準類實訓任務165
習題與思考167
第二篇提高篇
第7章異常處理171
本章學習目標171
7.1為什么需要異常處理171
7.2異常概述174
7.2.1什么是異常174
7.2.2異常處理帶來的好處175
7.3異常處理機制177
7.3.1Java的異常處理機制177
7.3.2異常類的類層次178
7.3.3異常的處理179
7.3.4實用案例182
7.4自定義異常類184
7.5異常處理實訓任務186
習題與思考187
第8章輸入輸出處理188
本章學習目標188
8.1流的作用188
8.2流的劃分189
8.3標準輸入輸出流191
8.3.1標準輸入191
8.3.2Scanner類封裝標準輸入流192
8.3.3標準輸出193
8.3.4實用案例193
8.4字節(jié)流使用194
8.4.1File類194
8.4.2文件字節(jié)流199
8.4.3字節(jié)過濾流201
8.4.4實用案例203
8.5字符流使用205
8.5.1文件字符流205
8.5.2字節(jié)流向字符流的轉化206
8.5.3Scanner封裝字符流208
8.5.4實用案例210
8.6串行化211
8.6.1串行化的概念211
8.6.2實用案例212
8.7輸入輸出處理實訓任務213
習題與思考217
第9章Java多線程218
本章學習目標218
9.1為什么使用多線程218
9.2線程的概念219
9.3線程的創(chuàng)建220
9.3.1采用繼承創(chuàng)建線程220
9.3.2通過實現接口創(chuàng)建線程222
9.3.3實用案例223
9.4線程的生命周期及調度224
9.4.1線程生命周期224
9.4.2線程調度和優(yōu)先級226
9.4.3線程的終止227
9.4.4實用案例229
9.5多線程互斥與同步230
9.5.1線程的互斥230
9.5.2線程的同步234
9.5.3實用案例236
9.6多線程實訓任務238
習題與思考242
第10章GUI程序設計244
本章學習目標244
10.1為什么學習GUI程序設計244
10.2基于Swing的簡單界面設計245
10.2.1Swing簡介245
10.2.2Swing的類層次結構246
10.2.3常見GUI組件247
10.2.4基于AWT的GUI程序249
10.3界面布局251
10.3.1無布局管理器布局251
10.3.2FlowLayout253
10.3.3BorderLayout254
10.3.4GridLayout255
10.3.5利用可視化工具進行布局256
10.3.6實用案例259
10.4響應用戶事件261
10.4.1事件處理的基本過程261
10.4.2常用事件與事件監(jiān)聽器類263
10.4.3鍵盤與鼠標事件265
10.4.4實用案例268
10.5高級組件JTree和JTable270
10.5.1JTree組件270
10.5.2JTable組件274
10.5.3實用案例277
10.6GUI程序設計實訓任務279
習題與思考285
第三篇網絡篇
第11章網絡通信289
本章學習目標289
11.1類URL與URLConnection289
11.2類InetAddress294
11.3Socket通信296
11.3.1基于TCP協(xié)議的Socket通信296
11.3.2實用案例298
11.3.3基于UDP的網絡通信302
11.3.4實用案例303
11.3.5基于MulticastSocket實現多點廣播306
11.4網絡通信實訓任務308
習題與思考309
第12章JSP與Servlet技術310
本章學習目標310
12.1為什么使用JSP310
12.2JSP技術312
12.2.1JSP工作原理312
12.2.2JSP的構成314
12.2.3JSP內建對象317
12.2.4實用案例322
12.3Servlet技術324
12.3.1Servlet介紹324
12.3.2Servlet常用接口的使用325
12.3.3使用HttpServlet處理客戶端請求329
12.3.4獲得Servlet初始化參數332
12.3.5實用案例334
12.4JSP和Servlet結合的方法336
12.4.1模式一: JSP+JavaBean336
12.4.2模式二: JSP+Servlet+JavaBean336
12.4.3JSP和Servlet的選擇337
12.4.4實用案例337
12.5JSP與Servlet開發(fā)實訓任務339
習題與思考342
第13章用Tomcat構建Web站點343
本章學習目標343
13.1Tomcat簡介343
13.2安裝配置Tomcat344
13.3編寫簡單的Web站點345
13.3.1配置服務器運行環(huán)境345
13.3.2新建動態(tài)Web工程346
13.3.3Web工程的結構347
13.3.4新建Servlet和JSP程序347
13.4運行Web站點351
13.5發(fā)布Web站點352
習題與思考353
第14章JDBC技術354
本章學習目標354
14.1為什么需要JDBC354
14.2數據庫和常用的SQL語句356
14.3JDBC的結構358
14.4通過JDBC訪問數據庫359
14.4.1加載JDBC驅動程序359
14.4.2建立連接359
14.4.3執(zhí)行SQL語句360
14.4.4檢索結果360
14.4.5關閉連接361
14.4.6實用案例361
14.4.7事務處理365
14.4.8實用案例366
14.5JDBC實訓任務370
習題與思考376
第四篇實例篇
第15章Java應用開發(fā)案例379
本章學習目標379
15.1基于Web的簡單學生信息管理系統(tǒng)379
15.1.1程序的基本結構379
15.1.2數據庫操作的實現381
15.1.3處理Web請求386
15.1.4Web頁面388
15.2推箱子游戲398
15.2.1程序的基本結構398
15.2.2游戲地圖設計398
15.2.3程序邏輯399
15.2.4繪制游戲界面404
15.2.5游戲窗體406
參考文獻409