| | | 像計算機科學家一樣思考Java(第二版) | 該商品所屬分類:計算機/網絡 -> 程序設計 | 【市場價】 | 1412-2048元 | 【優惠價】 | 883-1280元 | 【作者】 | 美艾倫美克裡斯·梅菲爾德 | 【所屬類別】 | 圖書 計算機/網絡 程序設計 Java | 【出版社】 | 中國電力出版社 | 【ISBN】 | 9787519856724 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](http://img3m9.ddimg.cn/63/29/29286639-1_u_3.jpg)
開本:16開 紙張:膠版紙 包裝:平裝-膠訂 是否套裝:否 國際標準書號ISBN:9787519856724 作者:[美]艾倫,[美]克裡斯·梅菲爾德 出版社:中國電力出版社 出版時間:2021年08月 
" 編輯推薦 本書是注重實踐的計算機科學與程序設計教程,為許多大學與中學所采用。本書內容簡明清晰、通俗易懂,而且特別重視用平實的語言來解釋專業的術語,尤其適合沒有經驗或經驗較少的人閱讀。這本書從基本的編程概念講起,逐漸談到高級的面向對像編程技巧。
本書作者 Allen Downey 與 Chris Mayfield 在版的基礎上做了大幅更新與擴充,他們會告訴你怎樣把編程用作手段,來解決各種有趣的問題。每章內容都能安排在大學課程的某一周裡面,而且每章末尾都有習題,可以促使你實踐本章所學的內容。另外,AP Computer Science A (AP 計算機科學 A)考試與 Java SE Programmer I 認證所涉及的每個話題,幾乎都會在這本書裡談到。 內容簡介
- 每次揭示一個概念:通過帶有範例的一繫列小步驟,來逐漸解決某個復雜的問題。
- 告訴你如何描述問題、如何構思解決方案,如何開發、測試並調試程序。
- 學習輸入與輸出、決策與循環、類與方法、字符串與數組,以及遞歸與多態。
- 告訴你怎樣選出合適的程序開發方法,以及如何運用重要的調試技能來排除程序故障。
作者簡介 Allen Downey是Olin College of Engineering的教授。他擁有加大伯克利的計算機科學博士學位與MIT的碩士及學士學位。
Chris Mayfield是James Madison University的計算機科學副教授。他擁有普渡大學的計算機科學博士學位及猶他大學的兩個學士學位。 前言 前言 本書想要給沒有經驗或經驗較少的讀者介紹計算機科學與編程。我們會從基本的概念開始講起,每遇到新的術語,筆者都會詳細給出定義。這樣,大家就能夠循序漸進地了解書裡的每個新想法。比較大的話題,例如控制流語句及面向對像編程,會分為多個小的範例,並用好幾章來講解。 筆者特意把這本書寫得很精簡。每章隻有10 ~ 12 頁,這樣,如果當作大學課程的教材,那麼剛好能用一星期講完一章。當然了,這本書肯定不會把Java 的所有內容全都講到,它隻會把初學者必須掌握的編程結構與技巧展示出來。我們先從小問題與基礎算法開始講,逐漸過渡到面向對像的設計上面。以計算機科學領域的教學術語來說,這本書用的是“先講過程,後講對像”的教學法(也就是objects late 方法)。 本書的寫作理念 本書遵循這樣幾條原則: 每次隻講一個概念前言 本書想要給沒有經驗或經驗較少的讀者介紹計算機科學與編程。我們會從基本的概念開始講起,每遇到新的術語,筆者都會詳細給出定義。這樣,大家就能夠循序漸進地了解書裡的每個新想法。比較大的話題,例如控制流語句及面向對像編程,會分為多個小的範例,並用好幾章來講解。 筆者特意把這本書寫得很精簡。每章隻有10 ~ 12 頁,這樣,如果當作大學課程的教材,那麼剛好能用一星期講完一章。當然了,這本書肯定不會把Java 的所有內容全都講到,它隻會把初學者必須掌握的編程結構與技巧展示出來。我們先從小問題與基礎算法開始講,逐漸過渡到面向對像的設計上面。以計算機科學領域的教學術語來說,這本書用的是“先講過程,後講對像”的教學法(也就是objects late 方法)。 本書的寫作理念 本書遵循這樣幾條原則: 每次隻講一個概念 筆者把新手理解起來比較困難的話題,拆分成許多個小的步驟,每個步驟都對應一個新的概念,我們先理解當前講的這個概念,然後再開始談下一個概念。在Java 語言的特性與計算機科學的通用概念之間尋求平衡 這本書並不是專講Java 的,而是想用Java 語言來編寫範例代碼,以演示計算機科學之中的概念。許多章節剛開始都會從Java 語言的某項特性講起,但後還是會歸結到計算機科學領域的概念上面。 力求簡潔 筆者撰寫本書時,有一項重要的目標,就是想寫得盡量簡短,讓學生可以在一個學期的大學課程或AP 課程裡面讀完,並理解其中的內容。 謹慎處理專有名詞 筆者盡可能在書中的少用術語,如果必須要用,那麼一定會在使用之前先仔細給出定義。另外,筆者還會把每章所引入的新術語,在該章後的詞彙表裡面總結一遍。 涵蓋各種程序開發策略 編寫程序有許多種策略,可以從下往上寫(bottom-up,自底向上),也可以從上往下寫(top-down,自頂向下),還可以采用其他寫法。筆者會演示許多種程序開發技巧,讓大家選出合適的辦法。 顧及不同程度的讀者 編寫程序的時候,我們必須知道這個程序要使用什麼算法,必須確定我們要拿什麼語言來寫這個程序,還必須懂得如何調試其中的錯誤。即使你不懂這些內容,也還是可以從頭開始慢慢學,因為筆者會在書裡把這些知識以及相關的其他一些內容,逐步講給大家聽,而且會在附錄D 裡總結。 面向對像編程 有的Java 書開篇就談類和對像,還有一些則是先講過程式的(procedural)編程,然後逐漸過渡到面向對像的編程方式。 其實,Java 裡面有許多面向對像的特性,都是為了解決以前那些編程語言的缺點而引入的,這些特性的實現方式,也受到這個因素影響。所以,如果不先討論從前那些編程語言有什麼樣的缺點和問題,那麼筆者就很難把Java 的某些特性解釋給大家聽。 當然我們會盡快(也就是從第9 章開始)講解面向對像編程。然而筆者前面說過,這本書每次隻介紹一個概念,隻有把當前這個概念講清,我們纔會繼續講解下一個概念,因此,大家需要一定的時間,纔會接觸到面向對像的那一部分。 在Java 語言裡,如果徹底不使用面向對像的特性,那麼我們連一個程序都寫不出來,即便是簡單的Hello World 程序,也要用到對像。所以,在某些情況下,筆者會把當前必須用到的新知識點簡要介紹一下,等到以後正式討論該知識點時再詳加解釋。 讀完全書之後,你幾乎能把Java SE Programmer I 認證所要求的每個知識點都了解到,還有一些補充課程,參見Java 官網的教程頁面:https://docs.oracle.com/javase/tutorial/。 這本書也適合參加AP Computer Science A(AP 計算機科學A)考試的中學生閱讀,這項考試的內容包含面向對像的設計與實現[AP 是College Board(美國大學理事會)的注冊商標]。AP 課程的知識點與本書相關章節之間的對應關繫,參見https://thinkjava.org。 第二版與版的區別 新版是經過許多年纔寫成的,筆者在編寫過程中,聽取了幾十位教師與幾百名學生的意見。完整的修改情況參見本書的GitHub 網頁。下面列出其中比較重要的地方: 第2 ~ 4 章 筆者重新編排了第1 章的內容,把理論部分與實踐部分調整得更合理一些。新版的第2 章與第3 章,也比舊版更加清晰。另外,筆者這次會把與方法(method)有關的知識,合起來安排到一章(也就是第4 章)中,並且會給出有深度的範例。 第5 ~ 8 章 這幾章也做了大幅調整,筆者添加了許多新的範例與圖表,並刪除了一些沒有必要的內容。這次我們提前講解字符串(把它放在數組的前面),這樣就可以在循環問題裡面使用字符串了。與遞歸有關的內容,單獨設立一章,而且這次我們拿用其中的兩節,來分別介紹二進制數與CodingBat。 第9 ~ 12 章 筆者修訂這幾章的時候,主要想把圖表與解說講得比原來更詳細。現在的第9 章與第10 章,更加明確地突出了不可變對像與可變對像之間的區別,另外我們還添加了兩節,分別講解BigInteger 與StringBuilder。其餘內容大致不變,但這次理解起來應該會容易一些。 第13 ~ 17 章 筆者調整了第13 ~ 14 章的內容,將ArrayList 提前講解,而且把相關的範例,統合到一款名叫War 的卡牌遊戲下面。第15 ~ 17 章是本次全新增加的內容,用來講解更為高級的話題,例如二維數組、圖形、異常、抽像類、接口與事件。 附錄 筆者增加了附錄B,用來更為詳細地講解文檔與Javadoc。另外三個附錄是版本來就有的,但這次的文字與排版更加清晰。 附錄簡介 本書正文裡面的各章應該按照順序閱讀,因為後一章要講的內容構建在前一章的基礎之上。書後的四個附錄則不用在意閱讀順序: 附錄A:工具 這個附錄描述怎樣下載並安裝Java,隻有裝好Java,你纔能在電腦上編譯Java 程序。另外,它簡單介紹了DrJava 的用法,這是一套集成開發環境(Integrated Development Environment,IDE),主要給學生使用。這份附錄還會提到檢查代碼質量所用的Checkstyle 工具,以及編寫測試所用的JUnit 工具。 附錄B:Javadoc 一定要給自己寫的類和方法添加文檔,這樣纔能讓其他開發者(也包括你自己)將來能夠明白,這些類跟方法應該如何使用。這份附錄講的就是怎樣閱讀並編寫文檔,以及如何使用Javadoc 工具。 附錄C:圖形 Java 提供了處理圖形與動畫的程序庫,這是兩個能夠激發學習興趣的話題。雖然這些庫所用到的面向對像知識,大家要到學完第10 章之後纔能完全理解,但我們不必等到那個時候,而是可以很早就開始使用。 附錄D:調試 雖然整本書裡面會提到各種調試建議,但是這份附錄之中的建議更多,它會詳細告訴你怎樣調試程序。閱讀正文的過程中,應該經常參考這個附錄。 範例代碼 書中的範例代碼,幾乎都可以從https://github.com/ChrisMayfield/ThinkJavaCode2訪問。Git 是一種版本控制繫統(version control system),能夠記錄並管理項目之中的文件,這些受到Git 控制的文件,可以放在同一個repository(倉庫)裡面(網址中的ThinkJavaCode2,就是這樣一個repository)。 GitHub 是一個托管服務平臺,可以存放Git 倉庫,讓用戶通過網頁方便地訪問這些倉庫。大家可以用下面幾種方式,使用本書的範例代碼: • 種辦法是點擊網頁中的Fork 按鈕,這樣就可以給GitHub 倉庫創建復本。如果你還沒有GitHub 賬號,那麼必須提前注冊。做了Fork 之後,你就有了自己的GitHub 倉庫,你可以用這個倉庫管理自己所寫的代碼。另外,你還可以對這個倉庫執行clone 操作,把其中的文件復制到自己的電腦裡面。 • 還有一種辦法是不對原倉庫做fork,而是直接把那個倉庫clone 下來,這樣做不需要使用GitHub 賬號,但同時你也無法通過GitHub 來管理自己對代碼所做的修改。 • 如果你根本就不想使用Git 功能, 那麼可以直接點擊原倉庫頁面裡的Download ZIP 按鈕,或訪問https://thinkjava.org/code2zip,把所有代碼當成一份ZIP 壓縮文件下載。 把原倉庫clone 下來, 或者把ZIP 文件解壓縮之後, 應該就會看到ThinkJavaCode2 目錄了,其中的各個子目錄,分別對應於本書的各章。 書中的範例代碼都是用OpenJDK 11 開發並測試的。如果你的JDK版本比這個新,那麼這些代碼都能夠正常運行,如果比這個舊,那麼其中有一些代碼可能無法運行。 書裡印刷的代碼,可以用在你自己的程序或文檔之中。隻要不是大量使用,就無需提前征求我們同意。比方說,拿書中的幾段代碼編寫你自己的程序,不需要提前獲得授權,但是銷售或傳播O’Reilly 書籍裡面的範例,則需征求我們同意。引用書中的內容與範例代碼回答問題,不需要提前獲得授權,但是把大量範例代碼納入你的產品文檔,則需征求我們同意。 我們樂意看到你在引用本書內容時標注資料來源,但這不是強制要求。如果要標注,那麼通常應該按照標題、作者、出版社與ISBN 的順序來寫,例如“Think Java by Allen B. Downey and Chris Mayfield. (O’Reilly). Copyright 2020 Allen B. Downey and Chris Mayfield, 978-1-492-07250-8”。 若不確定自己對範例代碼的用法是否屬於合理使用,或不確定這種用法是否需要征得我們同意,請聯繫permissions@oreilly.com 詢問。 排版約定 本書采用下述排版約定。 斜體(Italic) 表示新術語、網址、電子郵件地址、文件名、文件擴展名。 粗體(Bold) 如果正文中的某個詞會出現在每章後的詞彙表裡面,那麼這個詞在正文之中,就印成粗體。 等寬字體(Constant Width) 表示整段的程序代碼,以及正文裡面提到的程序內容,例如變量、函數、數據庫、數據類型、環境變量、語句、關鍵字等。 等寬粗體(Constant Width Bold) 表示用戶所輸入的命令或其他文本。 O’Reilly 在線學習平臺(O’Reilly Online Learning) 近40 年來,O’Reilly Media 致力於提供技術和商業培訓、知識和卓越見解,來幫助眾多公司取得成功。 我們有一群獨家專家和創新者,他們通過圖書、文章、會議和在線學習平臺分享知識和技術。O’Reilly 的在線學習平臺提供按需訪問的直播培訓課程、詳細的學習路徑、交互式編程環境,以及由O’Reilly 和其他200 多家出版社出版的書籍和視頻。詳情請訪問http://oreilly.com。 聯繫方式 請將你對本書的評價和問題發給出版社: 美國: O’Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 中國: 北京市西城區西直門南大街2 號成銘大廈C 座807 室(100035) 奧萊利技術咨詢(北京)有限公司 這本書還有一個專門的網頁,其中包含勘誤表、範例代碼,以及其他一些附加信息。這個版本的網址是:https://oreil.ly/think-java-2e。 涉及本書的意見與技術問題,可以發送至電子郵箱bookquestions@oreilly.com。 與我們的書籍、課程、會議、新聞等有關的詳細信息,請參見http://www.oreilly.com 網站。 我們的Facebook:http://facebook.com/oreilly。 我們的Twitter:http://twitter.com/oreillymedia。 我們的YouTube:http://www.youtube.com/oreillymedia。 致謝 這些年來,有許多人給本書提出了建議與修改意見,筆者對此深表感激。下面列出從開源4.0 版以來給本書提供幫助的人士,早前版本的貢獻者沒有寫在這裡: • Ellen Hildreth 使用本書在Wellesley College(維斯理學院)講授數據結構,並且提供了一整套建議與修改意見。 • Tania Passfield 發現了詞彙表裡面的多餘術語,那些術語當時已經不再出現於正文之中。 • Elizabeth Wiethoff 指出exp(–x2) 的級數展開式有誤。另外,她還創作了本書的Ruby 版。 • Matt Crawford 提出了一整套修正意見。 • Chi-Yu Li 指出了書中一段範例代碼裡面的拼寫問題及程序錯誤。 • Doan Thanh Nam 修正了書中的一個例子。 • Muhammad Saied 把本書翻譯成阿拉伯文,並在翻譯過程中發現了一些錯誤。 • Marius Margowski 發現了範例代碼裡面的一個矛盾之處。 • Leslie Klein 發現了exp(–x2) 的級數展開式之中的另一個問題,並在卡牌數組的示意圖裡發現了一處拼寫錯誤,此外還幫助筆者把某些練習題設計得更加清晰。 • Micah Lindstrom 找到了好幾個拼寫錯誤,並發來了修改意見。 • James Riely 把LaTeX 格式的書稿移植到http://fpl.cs.depaul.edu/jriely/thinkapjava。 • Peter Knaggs 把本書移植到https://www.rigwit.co.uk/think/sharp。 • Heidi Gentry-Kolen 根據本書內容制作了一些視頻(https://www.youtube.com/user/digipipeline)。 • Waldo Ribeiro 提交了一份pull request,其中指出了十幾個拼寫錯誤。 • Michael Stewart 對本書前半部分內容提出了建議。 • Steven Richardson 把本書改編為在線課程,並提出了許多條建議,以提升本書的質量。 • Fazl Rahman 逐章提供了詳細的反饋信息,並針對本書的質量提出了許多建議。 尤其感謝給本書O’Reilly Media 版做技術評審的Blythe Samuels、David Wisneski 與Stephen Rose。他們發現了很多錯誤,並提出了許多有效的建議,幫助筆者把這本書做得更好。筆者同樣要特別感謝Marc Loy,他詳細評審了本書的O’Reilly Media 第二版,並給出許多想法與修正建議,還指出了一些有待澄清的地方。 許多同學提供了很好的反饋意見,包括:Ian Staton、Tanner Wernecke、Jacob Green、Rasha Abuhantash、Nick Duncan、Kylie Davidson、Shirley Jiang、Elena Trafton、Jennifer Gregorio 與 Azeem Mufti。 還有一些讀者指出了一個或多個拼寫錯誤,他們是:Stijn Debrouwere、GuyDriesen、Andai Velican、Chris Kuszmaul、Daniel Kurikesu、Josh Donath、Rens Findhammer、Elisa Abedrapo、Yousef BaAfif、Bruce Hill、Matt Underwood、Isaac Sultan、Dan Rice、Robert Beard、Daniel Pierce、Michael Giftthaler、Chris Fox、Min Zeng、Markus Geuss、Mauricio Gonzalez、Enrico Sartirana、Kasem Satitwiwat 與Jason Miller。 如果對本書內容有意見或想法,請發送至feedback@greenteapress.com。 —— Allen B. Downey 和Chris Mayfield ![](http://img3m9.ddimg.cn/63/29/29286639-2_u_3.jpg) ![](http://img3m9.ddimg.cn/63/29/29286639-3_u_3.jpg) | | | | | |