Java編程入門 - 前言
《Java編程入門》是一本使用Java作為入門語言的免費計算機編程課本。可以用作編程入門課程教材,也可以用來自學編程。閱讀本書只需要對計算機和編程有一般性了解。本書中包含了一整年大學編程課程內容。第1章至第7章可以滿足大學一學期課程或者高中一學年課程的教學,余下的章節可以作為第2門課程。
本書的第七版涵蓋了“Java 7”的所有內容。Java最新版本是Java8。在這本書中只有一部分內容涉及Java 8的新特性。
(譯注:本書時間寫得早,所以當時Java最新版本是 Java 8。)
這本書的主頁是 http://math.hws.edu/javanotes/,提供了下載整個網站和本書PDF版本的鏈接。下載的網站內容包含這本書中使用的示例源代碼、每章課后測試的答案和結尾練習的解答。非常推薦讀者下載這些示例代碼,在閱讀的同時讀代碼并且運行這些程序。要想從這本書中得到最大的收獲,強烈推薦讀完所有練習解答。
在內容風格上,這本書更偏向于課本而不是教程。換句話說,它更專注于概念的解釋,而不是指導一步步如何去做。我試圖采用一種對話風格進行寫作,更貼近課堂教學而不是像傳統的課本那樣。當然,它不是Java參考書,更不是對Java所有功能的總結。這本書不是為那些已經了解某種其它編程語言的人所編寫的Java快速入門。相反,它針對的是那些第一次學習編程的人,更多的以Java為例講授一般編程概念。我相信,這本《Java編程入門》完全可以匹敵市面上那些傳統出版社發行、印刷的編程課本。(好吧,我承認在我看來這本書會更勝一籌。)
教授Java有很多方法。一種是從一開始就是用圖形化編程界面。一些人認為,應該從開始就強調面向對象編程。這不是我的方式。我鐘愛的方式是從更基本的編程模塊開始構建,然后從基本模塊繼續學習。在介紹章節之后的第2、3和4章,我討論了面向過程的程序設計。在第5章介紹了面向對象編程。第6章討論了面向事件編程的相關話題以及圖形用戶界面。第3章提到的數組在第7章進行了完整介紹。第8章是一個很短的章節,標志了本書的一個轉折點。從編程基礎概念的介紹轉向了更高級的話題。第8章涉及了如何編寫健壯、正確和高效的程序。第9章和第10章討論了遞歸和數據結構,包括Java集合框架。第11章是關于文件和網絡。第12章討論了線程和并發處理。最后,第13章回到了圖形用戶界面編程,介紹了Java更加高級的功能。
第7版《Java編程入門》沒有對第6版進行大幅更新。實際上,編寫新版的主要動機是從書中移除applet部分和相關討論。Applet是運行在網頁中的Java程序。Java剛誕生時,看起來applet似乎會成為創建Web動態內容的主流方式。直到第6版,本書的主頁還包含了示例applet程序。然而,由于安全因素和其它技術的出現,applet不再廣泛使用。加之最近發布的Java版本讓applet使用更加困難,因此決定不在書中介紹applet。移除applet后,我把精力投在了讓讀者們可以更方便地下載和運行示例程序。
第7版的另一個顯著改進是,在第3章加入了數組的簡要介紹。在接下來的3個章節里會更詳細地討論數組。之前的版本中,數組在對象和GUI編程之后,到第7章才開始介紹。新版的第7章包含了數組高級用法的討論。
除了上述變化,還有很多針對Java 7新功能的小改進。
《Java編程入門》的最新版可以在線獲得 http://math.hws.edu/javanotes/。該書的第1版寫于1996年,自那以后有了很多版本。各個不同的版本可以在下列網址看到:
- 第1版:http://math.hws.edu/eck/cs124/javanotes1/ (Java 1.0)
- 第2版: http://math.hws.edu/eck/cs124/javanotes2/ (Java 1.1)
- 第3版:http://math.hws.edu/eck/cs124/javanotes3/ (Java 1.1)
- 第4版: http://math.hws.edu/eck/cs124/javanotes4/ (Java 1.4)
- 第5版: http://math.hws.edu/eck/cs124/javanotes5/(Java 5.0)
- 第6版: http://math.hws.edu/eck/cs124/javanotes6/ (Java 5.0及更高版本)
- 第7版:http://math.hws.edu/eck/cs124/javanotes7/ (Java 7) </ul>
- 在你自己的網站上發布未經修改的版本(包含作者署名和許可聲明!)
- 在遵守協議的前提下,你可以分發或出售未經修改的版本。
- 對本書修改或部分修改可以在互聯網上發布且用于非商業目的。要求版本歸屬作者、明確地標注修改內容并且修改版本遵循原協議發布,包括翻譯成其它語言。 </ul>
《Java編程入門》是免費的,不受版權限制。第7版基于“署名-非商業性使用-相同方式共享3.0”授權發布。要查看協議的副本,可以訪問 http://creativecommons.org/licenses/by-nc-sa/3.0/。你可以:
協議中未注明的使用情況,需要征得原作者許可。
雖然協議中沒有明確對此進行要求,但我非常期待了解人們使用或傳播我的工作。
關于本書的技術說明:本書的在線和PDF版本來自同一份原稿,主要由XML編寫。為了輸出PDF版本,該XML文件被處理為可以被TeX排版程序使用的格式。除了XML文件,原稿還包含了DTD、XSLT轉換、Java源代碼文件、圖片、TeX宏文件和一些用來處理的腳本。這些腳本可以在Linux和Mac OS上運行。
本書的源文件可以從下面網址獲得:
http://math.hws.edu/eck/cs124/downloads/javanotes7-full-source.zip
這些文件本意并不用來出版,因此沒有非常仔細地編寫,使用這些文件需要很多專業知識。然而,我收到了很多請求想要這些文件,因此就“原封不動”的提供出來。這些文件的詳細信息及如何使用說明,請下載并參閱其中的README。
大衛·j·艾克(David J. Eck)教授
數學和計算機科學系
霍巴特威廉史密斯學院
美國紐約州日內瓦區普爾特尼街300號
郵件:eck@hws.edu
網站:http://math.hws.edu/eck/
譯文鏈接: http://www.importnew.com/16560.html