皮德常、張鳳林編著的《Java簡明教程(第4版)》詳細介紹了Java面向?qū)ο蟮暮诵木幊趟枷牒头椒,特別注重程序設計的實用性,使讀者具備運用面向?qū)ο蟮姆椒ǚ治龊徒鉀Q實際問題的能力。
本書主要內(nèi)容包括Java編程基礎、面向?qū)ο缶幊淘、接口、包、泛型的基本概念、鏈表、棧、散列、字符串處理、異常處理、輸入和輸出、多線程、小程序、Swing圖形界面設計、事件處理、數(shù)據(jù)庫增刪改等操作方法,以及數(shù)據(jù)庫編程綜合舉例等,非常適合Java初學者閱讀。此外,本書還突出了Java與C/C++的異同點,從而非常適合具備C/C++編程經(jīng)驗,又想轉(zhuǎn)向Java編程的讀者閱讀。
本書語言流暢、實例豐富,講解了Java程序設計的核心內(nèi)容。全部代碼都在JDK7.0環(huán)境下調(diào)試通過,并配有大量的習題,同時在指定網(wǎng)站提供了該書的電子教案和程序示例源碼,特別適合高等院校用作講授Java語言編程和面向?qū)ο蟪绦蛟O計的教材。
序言
隨著高等教育規(guī)模的擴大以及信息化在社會經(jīng)濟各個領域的迅速普及,計算機類專業(yè)在校學生數(shù)量已在理工科各專業(yè)中遙遙領先。但是,計算機和信息化行業(yè)是一個高度多樣化的行業(yè),計算機從業(yè)人員從事的工作性質(zhì)范圍甚廣。為了使得計算機專業(yè)能更好地適應社會發(fā)展的需求,從2004年開始,教育部高等學校計算機科學與技術(shù)教學指導委員會組織專家對國內(nèi)計算機專業(yè)教育改革進行了深入的研究與探索,提出了以“培養(yǎng)規(guī)格分類”為核心思想的專業(yè)發(fā)展思路,將計算機科學與技術(shù)專業(yè)分成計算機科學(CS)、軟件工程(SE)、計算機工程(CE)和信息技術(shù)(IT)四個方向,并且自2008年開始進入試點階段。
以信息化技術(shù)的廣泛應用為動力,實現(xiàn)信息化與工業(yè)化的融合,這是我們面臨的重大戰(zhàn)略任務。這一目標的實現(xiàn)依賴于培養(yǎng)出一支新一代勞動大軍。除了計算機和網(wǎng)絡等硬件、軟件的研制開發(fā)生產(chǎn)人員外,必須要有大量的專業(yè)人員從事信息化系統(tǒng)的建設并提供信息服務。
信息技術(shù)方向作為計算機科學與技術(shù)專業(yè)中分規(guī)格培養(yǎng)的一個方向,其目標就是培養(yǎng)在各類組織機構(gòu)中承擔信息化建設任務的專業(yè)人員。對他們的能力、素質(zhì)與知識結(jié)構(gòu)的要求盡管與計算機科學、軟件工程、計算機工程等方向有交叉,但其特點也很清楚。信息技術(shù)方向培養(yǎng)能夠熟練地應用各種軟、硬件系統(tǒng)知識構(gòu)建優(yōu)化的信息系統(tǒng),實施有效技術(shù)管理與維護。他們應該更了解各種計算機軟、硬件系統(tǒng)的功能和性能,更善于系統(tǒng)的集成與配置,更有能力管理和維護復雜信息系統(tǒng)的運行。在信息技術(shù)應用廣泛深入拓展的今天,這樣的要求已遠遠超出了傳統(tǒng)意義上人們對信息中心等機構(gòu)技術(shù)人員組成和能力的理解。
信息技術(shù)在國外也是近年來才發(fā)展起來的新方向。其專業(yè)建設剛剛開始起步。本系列教材是國內(nèi)第一套遵照教育部高等學校計算機科學與技術(shù)教學指導委員會編制的《高等學校計算機科學與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)》(以下簡稱專業(yè)規(guī)范),針對信息技術(shù)方向需要組織編寫的教材,編委會成員主要是教育部高等學校計算機科學與技術(shù)教學指導委員會制定專業(yè)規(guī)范信息技術(shù)方向研究組的核心成員。本系列教材的著重點是信息技術(shù)方向特色課程,即與計算機專業(yè)其他方向差別明顯的課程的教材建設,力圖通過這些教材,全面準確地體現(xiàn)專業(yè)規(guī)范的要求,為當前的試點工作以及今后信息技術(shù)方向更好的發(fā)展奠定良好的基礎。參與本系列教材編寫的作者均為多年從事計算機教育的專家,其中多數(shù)人直接參與了計算機專業(yè)教育改革研究與專業(yè)規(guī)范的起草,對于以分規(guī)格培養(yǎng)為核心的改革理念有著深刻的理解。
當然,信息技術(shù)方向是全新的方向,這套教材的實用性還需要在教學實踐中檢驗。本系列教材編委和作者按照信息技術(shù)方向的規(guī)范在這一新方向的教材建設方面做了很好的嘗試,特別是把重點放在與其他方向不同的地方,為教材的編寫提出了很高的要求,也有很大的難度,但對這一新方向的建設具有重要的意義。我希望通過本系列教材的出版,使得有更多的教育界的同仁參與到信息技術(shù)方向的建設中,更好地促進計算機教育為國家社會經(jīng)濟發(fā)展服務。
中國科學院院士
前言
Java程序設計是高等學校計算機類和電子信息類學科各專業(yè)的核心專業(yè)基礎課程,是培養(yǎng)學生面向?qū)ο蟪绦蛟O計能力的主干課程之一,在計算機學科的教學中非常重要。
1995年5月Sun Microsystems公司推出的Java語言是一種令人振奮的新型語言,它具有面向?qū)ο蟆⑵脚_無關、可移植性強、安全、支持分布式等諸多特征,特別適合網(wǎng)絡編程。目前,Java語言已經(jīng)成為高校學生學習面向?qū)ο蟪绦蛟O計的必選語言。
2004年9月,Sun公司發(fā)布了J2SE 1.5,是Java語言發(fā)展史上的一個里程碑,同時將J2SE 1.5更名為J2SE 5.0。2005年6月,JavaOne大會召開,Sun公司將Java版本及其平臺更名,取消了其中的數(shù)字“2”,J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME,JDK 1.6更名為Java SE6。2009年4月,世界一流的數(shù)據(jù)庫軟件商Oracle公司收購了Sun公司,我們在本書中稱Java是Oracle公司的產(chǎn)品。
從程序設計語言的發(fā)展歷史來看,Java語言是在C++語言之上推出的新一代語言,其語法與C++語法相似,但剔除了C++中易于出錯的成分。Java增加了諸如內(nèi)存自動回收之類的新功能,刪除了C++中令人費解的、不常用的成分,如指針和運算符重載等。Java從問世以來,很快流行于全世界,并獲得了極大成功。目前,許多軟件項目已選擇Java語言作為其編程語言,特別是計算機網(wǎng)絡方面的軟件。
本書前三版受到了大量讀者(高校教師、大學生、程序員等)的熱烈歡迎,他們在使用的過程中,給作者提出了一些很好的意見和建議,在此,作者表示深深的感謝。
在本書再版的過程中,張鳳林修訂了本書的第1~4章,其余的由皮德常修訂,全書由皮德常通稿。作者的研究生張偉、王延達等人為本書做了大量的資料收集和程序驗證工作。
本書與前版相比的改進之處
(1) 在程序編排上,采用了“程序舉例→程序運行結(jié)果→程序解析”統(tǒng)一風格,使讀者能一目了然地找到關鍵點。(2) 增加了泛型程序設計。泛型程序設計意味著編寫的代碼可以被很多不同類型的對象重用,它使得Java程序具有更強的可移植性。
(3) 增加了針對數(shù)據(jù)庫的編程以及綜合應用設計,給出了一個針對Access數(shù)據(jù)庫編程的綜合舉例。為讀者采用Java語言進行課程設計和項目研發(fā)打下了堅實的基礎。
(4) 將GUI布局管理器與事件處理進行了組合;增加了8.6節(jié)Java中的文件新特性、9.3節(jié)線程的基本操作,以及12.4節(jié)數(shù)據(jù)庫操作中的常用接口和類,這些都是新版Java的內(nèi)容。
(5) 依據(jù)最新版JDK 7.0,新版教材增刪了部分內(nèi)容。針對Java語言近幾年的進展,新教材與時俱進,與前面的JDK 6.0相比,本書根據(jù)JDK 7.0的變化,增刪改了許多細微的知識點,并采用醒目的標注方式給出了解釋。
本書特點
1) 抓重要概念
Java編程屬高等院校計算機相關專業(yè)的學生要學習的一門專業(yè)課,一般安排在C/C++課程之后學習,理論教學的學時往往比較少,本科教學大多是36學時,大專教學是48學時。在如此少的學時內(nèi),教師不可能講授完Java的所有知識,只能抓住重點內(nèi)容進行介紹。針對這種情況,本書突出了Java與C/C++的不同之處,對這些語言的共性點不作詳細介紹,僅僅講授Java的核心內(nèi)容,這不但便于讀者學習和掌握,同時也便于教師講解。
2) 舍棄次要內(nèi)容
考慮到Java課程的學時安排,以及Java與C/C++之間的關系,本書對Java開發(fā)工具的應用、基本數(shù)據(jù)類型、運算符、控制語句和類庫,都沒有作過多的討論。例如,Java中的基本數(shù)據(jù)類型、運算符及控制語句等內(nèi)容與C/C++類似,因而只是作了簡單的介紹;另外,由于Java類庫十分龐大,因此本書僅對常用的類庫進行了介紹。
3) 力求培養(yǎng)學生的思考能力
本書就Java的一些實現(xiàn)技術(shù)進行了討論和分析,并介紹了實現(xiàn)內(nèi)幕。例如,作者結(jié)合自己的理解,分析了實例變量和方法的多態(tài)性問題(見4.9節(jié));結(jié)合String和StringBuffer類,分析了“+”號操作的實現(xiàn)內(nèi)幕(見6.3.3節(jié))。這些內(nèi)容對培養(yǎng)學生的思考能力提供了一定的幫助,有助于培養(yǎng)他們勤于思考,勇于實踐,敢于創(chuàng)新的能力。
4) 以最新的Java SE為標準
本書采用最新版本的JDK 7 U65(簡稱JDK 7)和非常優(yōu)秀的NetBeans IDE 8.0作為Java程序設計的開發(fā)環(huán)境,讀者均可從Oracle網(wǎng)站免費下載。
NetBeans IDE 是一個可用于 Windows、Mac、Linux 和 Solaris平臺上的集成開發(fā)環(huán)境,通過該環(huán)境讀者可以使用Java平臺以及JavaFX、JavaScript和C/C++等語言快速創(chuàng)建Web、企業(yè)、桌面和Mobile應用程序。
5) 突出與C/C++的異同點
如前所述,Java課程往往安排在C/C++課程之后。為了便于讀者對Java的理解和掌握,本書在內(nèi)容編排上突出了Java與C/C++的異同點,以免讀者誤解Java的知識點,做到快速掌握Java編程的核心思想。
6) 力求通俗易懂
編寫本書的目的是讓讀者通過自學或在教師的指導下,學會運用Java進行面向?qū)ο蟮某绦蛟O計。因此,本書圍繞如何進行Java編程展開。為了便于讀者學習,作者力求使本書的語言通俗易懂,將復雜的概念采用淺顯的語言來講述,便于讀者理解和掌握。
本書的編排特點
(1) 每章開始均點明本章要講解的內(nèi)容和學習要求。
(2) 每章結(jié)束時,都進行了小結(jié),給出了該章內(nèi)容的概括性描述,并對該章的知識點進行了歸納。
(3) 每章安排的習題都具有很強的操作性,讀者可通過計算機進行練習。
(4) 書中重要的內(nèi)容采用黑體標記,特別重要的內(nèi)容采用下面加點的方式標記。
(5) 本書強調(diào)程序的可讀性。書中的程序全部采用統(tǒng)一的程序設計風格。例如,類名、方法名和變量名的定義做到“見名知義”;左大括號和右大括號對應,并采用縮排格式組織程序代碼;此外,對程序中的語句盡可能多地進行了注釋。
(6) 強調(diào)程序的可移植性,不以某個Java開發(fā)工具為標準,而是以最新JDK 7.0為標準。
(7) 本書包含了大量的程序示例,并給出了運行結(jié)果。凡是程序開頭帶有程序編號的程序,都是完整的程序,可以直接在計算機上編譯運行。
(8) 本書采用了醒目的標記來顯示知識點。這些標記包括“注意”和“思考”,它們穿插在全書中,能幫助讀者盡快找到重要的信息。這些標記的含義如下:
【注意】值得讀者關注的地方,它們往往是容易混淆的知識點。
【思考】提出問題,引導讀者思考,培養(yǎng)思考能力。創(chuàng)新從“問號”開始。
教學支持
本書的電子教案是采用PowerPoint 2003制作的,可以在講課時用多媒體投影演示,這部分可取代板書。教師不僅可以使用本教案,還可以方便地修改和重新組織其中的內(nèi)容以適應自己的教學需要。使用本教案可以減少教師備課時編寫教案的工作量,以及因板書所耗費的時間和精力,從而提高單位課時內(nèi)的知識含量。我們向使用本教材的教師免費提供本書的電子教案和全部程序示例源碼,需要本書習題參考答案的教師請在www.tup.tsinghua.edu.cn網(wǎng)站上獲取《Java簡明教程(第4版)》的參考答案。為了更好地為您服務,請在郵件中附上姓名、工作單位、地址、聯(lián)系電話、主講課程等信息。
感謝讀者選擇本書,歡迎提出批評和修改建議,作者將不勝感激。
作者2015年1月
第1章 Java語言簡介
1.1 Java語言的發(fā)展歷程
1.2 Java語言的特點
1.2.1 簡單性
1.2.2 面向?qū)ο?br />
1.2.3 分布性
1.2.4 解釋執(zhí)行
1.2.5 健壯性
1.2.6 安全性
1.2.7 結(jié)構(gòu)中立
1.2.8 可移植性
1.2.9 高效性
1.2.10 多線程
1.2.11 動態(tài)性
1.3 Java類庫的概念
1.4 網(wǎng)絡瀏覽器
1.5 Java開發(fā)工具
1.6 Java程序分類
1.6.1 使用NetBeans運行Java應用程序
1.6.2 使用NetBeans運行Java Applet小程序
1.7 對Java程序的解釋
1.7.1 程序注釋方法
1.7.2 對Java應用程序的解釋
1.7.3 對Java小程序的解釋
1.7.4 對HTML文件的解釋
1.8 編寫Java程序的風格要求
本章小結(jié)
思考和練習
第2章 數(shù)據(jù)類型、運算符和表達式
2.1 常量
2.2 變量
2.2.1 整型變量
2.2.2 字符型變量
2.2.3 浮點型變量
2.2.4 布爾型變量
2.2.5 對原子類型變量生存空間的討論
2.3 變量賦值問題
2.4 數(shù)組
2.4.1 一維數(shù)組
2.4.2 二維數(shù)組
2.4.3 數(shù)組初始化
2.5 Java中的參數(shù)傳遞方式
2.6 Java的運算符
2.6.1 算術(shù)運算符
2.6.2 關系運算符
2.6.3 邏輯運算符
2.6.4 位運算符
2.6.5 三元條件運算符
2.6.6 +運算符
本章小結(jié)
思考和練習
第3章 控制語句
3.1 分支語句
3.1.1 if語句
3.1.2 switch語句
3.2 循環(huán)控制語句
3.2.1 while語句
3.2.2 do-while語句
3.2.3 for語句
3.3 break語句和continue語句
3.3.1 不帶標號的break語句和continue語句
3.3.2 帶標號的break語句和continue語句
本章小結(jié)
思考和練習
第4章 Java的類
……
第5章 接口、包與泛型
第6章 字符串處理
第7章 異常處理
第8章 輸入與輸出處理
第9章 多線程
第10章 小程序
第11章 Swing圖形界面設計
第12章 數(shù)據(jù)庫程序設計
參考文獻