關(guān)于我們
書單推薦
新書推薦
|
Java語言程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)(基礎(chǔ)篇)(原書第11版)
本書是Java語言的經(jīng)典教材,中文版分為基礎(chǔ)篇和進(jìn)階篇,主要介紹程序設(shè)計(jì)基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計(jì)、GUI程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)和算法、高級(jí)Java程序設(shè)計(jì)等內(nèi)容。本書以示例講解解決問題的技巧,提供大量的程序清單,每章配有大量復(fù)習(xí)題和編程練習(xí)題,幫助讀者掌握編程技術(shù),并應(yīng)用所學(xué)技術(shù)解決實(shí)際應(yīng)用開發(fā)中遇到的問題;A(chǔ)篇主要介紹基本程序設(shè)計(jì)、語法結(jié)構(gòu)、面向?qū)ο蟪绦蛟O(shè)計(jì)、繼承和多態(tài)、異常處理和文本I/O、抽象類和接口等內(nèi)容。
前 言Introduction to Java Programming and Data Structures, Comprehensive Version, Eleventh Edition許多讀者就本書之前的版本給出了很多反饋。這些評(píng)論和建議極大地改進(jìn)了本書。這一版在表述、組織、示例、練習(xí)題以及附錄方面都有大幅提高。
本書采用基礎(chǔ)優(yōu)先的方法,在設(shè)計(jì)用戶自定義類之前,首先介紹基本的程序設(shè)計(jì)概念和技術(shù)。選擇語句、循環(huán)、方法和數(shù)組這樣的基本概念和技術(shù)是程序設(shè)計(jì)的基礎(chǔ),它們?yōu)閷W(xué)生進(jìn)一步學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)和高級(jí)Java程序設(shè)計(jì)做好準(zhǔn)備。 本書以問題驅(qū)動(dòng)的方式來教授程序設(shè)計(jì),將重點(diǎn)放在問題的解決而不是語法上。我們通過使用在各種應(yīng)用情景中引發(fā)思考的問題,使得程序設(shè)計(jì)的介紹變得更加有趣。前面章節(jié)的主線放在問題的解決上,引入合適的語法和庫以支持編寫解決問題的程序。為了支持以問題驅(qū)動(dòng)的方式來教授程序設(shè)計(jì),本書提供了大量不同難度的問題來激發(fā)學(xué)生的積極性。為了吸引各個(gè)專業(yè)的學(xué)生來學(xué)習(xí),這些問題涉及很多應(yīng)用領(lǐng)域,包括數(shù)學(xué)、科學(xué)、商業(yè)、金融、游戲、動(dòng)畫以及多媒體等。 本書將程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)和算法無縫整合在一起,采用一種實(shí)用的方式來教授數(shù)據(jù)結(jié)構(gòu)。首先介紹如何使用各種數(shù)據(jù)結(jié)構(gòu)來開發(fā)高效的算法,然后演示如何實(shí)現(xiàn)這些數(shù)據(jù)結(jié)構(gòu)。通過實(shí)現(xiàn),學(xué)生可以深入理解數(shù)據(jù)結(jié)構(gòu)的效率,以及如何和何時(shí)使用某種數(shù)據(jù)結(jié)構(gòu)。最后,我們?cè)O(shè)計(jì)和實(shí)現(xiàn)了針對(duì)樹和圖的用戶自定義數(shù)據(jù)結(jié)構(gòu)。 本書廣泛應(yīng)用于全球各大學(xué)的程序設(shè)計(jì)入門、數(shù)據(jù)結(jié)構(gòu)和算法課程中。完全版包括程序設(shè)計(jì)基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計(jì)、GUI程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、算法、并行、網(wǎng)絡(luò)、數(shù)據(jù)庫和Web程序設(shè)計(jì)。這個(gè)版本旨在把學(xué)生培養(yǎng)成精通Java的程序員;A(chǔ)篇可用于程序設(shè)計(jì)的第一門課程(通常稱為CS1)。基礎(chǔ)篇包含完全版的前18章內(nèi)容,本書還有一個(gè)AP版本,適合學(xué)習(xí)AP計(jì)算機(jī)科學(xué)(AP Computer Science)課程的高中生使用。 教授編程的最好途徑是通過示例,而學(xué)習(xí)編程的唯一途徑是通過動(dòng)手練習(xí)。本書通過示例對(duì)基本概念進(jìn)行了講解,并提供了大量不同難度的練習(xí)題供學(xué)生進(jìn)行練習(xí)。在我們的程序設(shè)計(jì)課程中,每次課后都布置了編程練習(xí)。 我們的目標(biāo)是編寫一本可以通過各種應(yīng)用場(chǎng)景中的有趣示例來教授問題求解和程序設(shè)計(jì)的教材。如果您有任何關(guān)于如何改進(jìn)本書的評(píng)論或建議,請(qǐng)給我發(fā)郵件。 Y. Daniel Liangy.daniel.liang@gmail.comwww.cs.armstrong.edu/liangwww.pearsonhighered.com/liangACM/IEEE課程體系2013版和ABET課程評(píng)價(jià)新的ACM/IEEE課程體系2013版將知識(shí)體系組織成18個(gè)知識(shí)領(lǐng)域。為了幫助教師基于本書設(shè)計(jì)課程,我們提供了示例教學(xué)大綱來確定知識(shí)領(lǐng)域和知識(shí)單元。作為一個(gè)常規(guī)的定制示例,示例教學(xué)大綱用于三學(xué)期的課程系列。示例教學(xué)大綱可以從教師資源配套網(wǎng)站獲取。 許多讀者來自ABET認(rèn)證計(jì)劃。ABET認(rèn)證的一個(gè)關(guān)鍵組成部分是,通過針對(duì)課程效果的持續(xù)的課程評(píng)價(jià)確定薄弱環(huán)節(jié)。我們?cè)诮處熧Y源配套網(wǎng)站中提供了課程效果示例,以及用于衡量課程效果的示例考試。 本版新增內(nèi)容本版對(duì)各個(gè)細(xì)節(jié)都進(jìn)行了全面修訂,以增強(qiáng)其清晰性、表述、內(nèi)容、示例和練習(xí)題。本版主要的改進(jìn)如下: 書名改為了“Java語言程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)”,以體現(xiàn)在數(shù)據(jù)結(jié)構(gòu)方面的增強(qiáng)。本書使用一種實(shí)用的方式來介紹、實(shí)現(xiàn)和使用數(shù)據(jù)結(jié)構(gòu),并涵蓋了一門典型的數(shù)據(jù)結(jié)構(gòu)課程中的所有主題。另外,還提供了額外的獎(jiǎng)勵(lì)章節(jié)來介紹高級(jí)的數(shù)據(jù)結(jié)構(gòu),比如2-4樹、B樹以及紅黑樹等。 針對(duì)最新的Java技術(shù)進(jìn)行了更新。使用Java 8版本中的新特征對(duì)示例和練習(xí)進(jìn)行了改進(jìn)和簡(jiǎn)化。 在第13章的接口介紹中,引入了默認(rèn)方法和靜態(tài)方法。 GUI相關(guān)章節(jié)都更新到JavaFX 8。改寫了所有示例。示例和練習(xí)中的用戶界面現(xiàn)在都是可以改變尺寸并且居中顯示的。 在第15章的示例中,涵蓋了內(nèi)部類、匿名內(nèi)部類以及l(fā)ambda表達(dá)式的內(nèi)容。 數(shù)據(jù)結(jié)構(gòu)相關(guān)章節(jié)中,更多的示例和練習(xí)采用了lambda表達(dá)式來簡(jiǎn)化編程。方法引用在20.6節(jié)介紹Comparator接口時(shí)進(jìn)行了介紹。 在第20章中介紹了forEach方法,作為對(duì)集合中每個(gè)元素應(yīng)用一個(gè)動(dòng)作而進(jìn)行的循環(huán)的簡(jiǎn)單替代方法。 在第24~29章中,使用了Java 8中接口的默認(rèn)方法重新設(shè)計(jì)和簡(jiǎn)化了MyList、MyArrayList、MyLinkedList、Tree、BST、AVLTree、MyMap、MyHashMap、MySet、MyHashSet、Graph、UnweightedGraph和WeightedGraph的實(shí)現(xiàn)。 第30章為全新章節(jié),介紹集合流的聚合操作。 第31章介紹了FXML和Scene Builder可視化工具。 重新設(shè)計(jì)了配套網(wǎng)站,增加了新的交互式測(cè)試題、復(fù)習(xí)題、動(dòng)畫以及現(xiàn)場(chǎng)編程。 在教師資源網(wǎng)站上為教師額外提供了200多道編程練習(xí)題,并給出了答案。這些練習(xí)題沒有出現(xiàn)在教材中。 可以訪問www.pearsonhighered.com/liang,獲得和前一版本的關(guān)聯(lián)以及新特征的完整列表。 教學(xué)特色本書使用以下要素組織素材: 教學(xué)目標(biāo):在每章開始列出學(xué)生學(xué)習(xí)本章應(yīng)該掌握的內(nèi)容,學(xué)完這章后,學(xué)生能夠判斷自己是否達(dá)到這個(gè)目標(biāo)。 引言:提出引發(fā)思考的問題以展開討論,激發(fā)讀者深入探討該章內(nèi)容。 要點(diǎn)提示:突出每節(jié)中涵蓋的重要概念。 復(fù)習(xí)題:按節(jié)組織,幫助學(xué)生復(fù)習(xí)相關(guān)內(nèi)容并評(píng)估掌握的程度。 示例學(xué)習(xí):通過精心挑選示例,以容易理解的方式教授問題求解和程序設(shè)計(jì)概念。本書使用多個(gè)小的、簡(jiǎn)單的、激發(fā)興趣的例子來演示重要的概念。 本章小結(jié):回顧學(xué)生應(yīng)該理解和記住的重要主題,有助于鞏固該章所學(xué)的關(guān)鍵概念。 測(cè)試題:可以在線訪問,按照章節(jié)組織,讓學(xué)生可以就編程概念和技術(shù)進(jìn)行自我測(cè)試。 編程練習(xí)題:按章節(jié)組織,為學(xué)生提供獨(dú)立應(yīng)用所學(xué)新技能的機(jī)會(huì)。練習(xí)題的難度分為容易(沒有星號(hào))、適度(*)、難(**)和具有挑戰(zhàn)性(***)四個(gè)級(jí)別。學(xué)習(xí)程序設(shè)計(jì)的竅門就是實(shí)踐、實(shí)踐、再實(shí)踐。所以,本書提供了大量的編程練習(xí)題。另外,在教師資源網(wǎng)站上為教師提供了200多道帶有答案的編程練習(xí)題。 注意、提示、警告和設(shè)計(jì)指南:貫穿全書,對(duì)程序開發(fā)的重要方面提供有價(jià)值的建議和見解。 注意:提供學(xué)習(xí)主題的附加信息,鞏固重要概念。 提示:教授良好的程序設(shè)計(jì)風(fēng)格和實(shí)踐經(jīng)驗(yàn)。 警告:幫助學(xué)生避開程序設(shè)計(jì)錯(cuò)誤的誤區(qū)。 設(shè)計(jì)指南:提供設(shè)計(jì)程序的指南。 靈活的章節(jié)順序本書提供靈活的章節(jié)順序,使GUI、異常處理、遞歸、泛型和Java集合框架等內(nèi)容可以或早或晚地講解。下頁的插圖顯示了各章之間的相關(guān)性。 本書的組織所有的章節(jié)分為五部分,構(gòu)成Java程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)和算法、數(shù)據(jù)庫和Web程序設(shè)計(jì)的全面介紹。書中知識(shí)是循序漸進(jìn)的,前面的章節(jié)介紹了程序設(shè)計(jì)的基本概念,并且通過簡(jiǎn)單的例子和練習(xí)題引導(dǎo)學(xué)生;后續(xù)的章節(jié)逐步詳細(xì)地介紹Java程序設(shè)計(jì),最后介紹開發(fā)綜合的Java應(yīng)用程序。附錄包含數(shù)系、位操作、正則表達(dá)式以及枚舉類型等多種主題。 第一部分 程序設(shè)計(jì)基礎(chǔ)(第1~8章)本書第一部分是基石,讓你開始踏上Java學(xué)習(xí)之旅。你將了解Java(第1章),還將學(xué)習(xí)像基本數(shù)據(jù)類型、變量、常量、賦值、表達(dá)式以及操作符這樣的基本程序設(shè)計(jì)技術(shù)(第2章),選擇語句(第3章),數(shù)學(xué)函數(shù)、字符和字符串(第4章),循環(huán)(第5章),方法(第6章),數(shù)組(第7和8章)。在第7章之后,可以跳到第18章去學(xué)習(xí)如何編寫遞歸的方法來解決本身具有遞歸特性的問題。 第二部分 面向?qū)ο蟪绦蛟O(shè)計(jì)(第9~13章和第17章)這一部分介紹面向?qū)ο蟪绦蛟O(shè)計(jì)。Java是一種面向?qū)ο蟪绦蛟O(shè)計(jì)語言,它使用抽象、封裝、繼承和多態(tài)來提供開發(fā)軟件的極大靈活性、模塊化和可重用性。你將學(xué)習(xí)如何使用對(duì)象和類(第9和10章)、類的繼承(第11章)、多態(tài)性(第11章)、異常處理(第12章)、抽象類(第13章)以及接口(第13章)進(jìn)行程序設(shè)計(jì)。文本I/O將在第12章介紹,二進(jìn)制I/O將在第17章介紹。 第三部分 GUI程序設(shè)計(jì)(第14~16章和獎(jiǎng)勵(lì)章節(jié)第31章)JavaFX是一個(gè)開發(fā)Java GUI程序的新框架。它不僅對(duì)于開發(fā)GUI程序有用,還是一個(gè)用于學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)秀教學(xué)工具。這一部分在第14~16章介紹使用JavaFX進(jìn)行Java GUI程序設(shè)計(jì)。主要的主題包括GUI基礎(chǔ)(第14章)、容器面板(第14章)、繪制形狀(第14章)、事件驅(qū)動(dòng)編程(第15章)、動(dòng)畫(第15章)、GUI組件(第16章),以及播放音頻和視頻(第16章)。你將學(xué)習(xí)采用JavaFX的GUI程序架構(gòu),并且使用組件、形狀、面板、圖像和視頻來開發(fā)有用的應(yīng)用程序。第31章涵蓋JavaFX的高級(jí)特性。 第四部分 數(shù)據(jù)結(jié)構(gòu)和算法(第18~30章以及獎(jiǎng)勵(lì)章節(jié)第42和43章)這一部分介紹一門典型的數(shù)據(jù)結(jié)構(gòu)和算法課程中的主題。第18章介紹遞歸以編寫解決本身具有遞歸特性的問題的方法。第19章介紹泛型是如何提高軟件的可靠性的。第20和21章介紹Java集合框架,它為數(shù)據(jù)結(jié)構(gòu)定義了一套有用的API。第22章討論算法效率的度量以便為應(yīng)用程序選擇合適的算法。第23章介紹經(jīng)典的排序算法。你將在第24章中學(xué)到如何實(shí)現(xiàn)經(jīng)典的數(shù)據(jù)結(jié)構(gòu),如線性表、隊(duì)列和優(yōu)先隊(duì)列。第25和26章介紹二分查找樹和AVL樹。第27章介紹散列以及通過散列實(shí)現(xiàn)映射(map)和集合(set)。第28和29章介紹圖的應(yīng)用。第30章介紹用于集合流的聚合操作。2-4樹、B樹以及紅黑樹在獎(jiǎng)勵(lì)章節(jié)第42和43章中介紹。 第五部分 高級(jí)Java程序設(shè)計(jì)(獎(jiǎng)勵(lì)章節(jié)第32~41章和第44章)這一部分介紹高級(jí)Java程序設(shè)計(jì)。第32章介紹使用多線程使程序具有更好的響應(yīng)性和交互性,并介紹并行編程。第33章討論如何編寫程序使得Internet上的不同主機(jī)能夠相互對(duì)話。第34章介紹使用Java來開發(fā)數(shù)據(jù)庫項(xiàng)目。第35章深入探討高級(jí)Java數(shù)據(jù)庫編程。第36章涵蓋國際化支持的使用,以開發(fā)面向全球使用者的項(xiàng)目。第37和38章介紹如何使用Java servlet和JSP創(chuàng)建來自Web服務(wù)器的動(dòng)態(tài)內(nèi)容。第39章介紹使用JSF進(jìn)行現(xiàn)代Web應(yīng)用開發(fā)。第40章介紹遠(yuǎn)程方法調(diào)用,而第41章討論Web服務(wù)。第44章介紹使用JUnit測(cè)試Java程序。 附錄附錄A列出Java關(guān)鍵字。附錄B給出十進(jìn)制和十六進(jìn)制ASCII字符集。附錄C給出操作符優(yōu)先級(jí)。附錄D總結(jié)Java修飾符及其使用。附錄E討論特殊的浮點(diǎn)值。附錄F介紹數(shù)系以及二進(jìn)制、十進(jìn)制和十六進(jìn)制間的轉(zhuǎn)換。附錄G介紹位操作符。附錄H介紹正則表達(dá)式。附錄I涵蓋枚舉類型。
梁勇(Y. Daniel Liang) 現(xiàn)為阿姆斯特朗亞特蘭大州立大學(xué)計(jì)算機(jī)科學(xué)系教授。之前曾是普度大學(xué)計(jì)算機(jī)科學(xué)系副教授,并曾兩次獲得普度大學(xué)杰出研究獎(jiǎng)。他所編寫的Java教程在美國大學(xué)Java課程中采用率極高,同時(shí)他還兼任Prentice Hall Java系列叢書的編輯。他是“Java Champion”榮譽(yù)得主,并在世界各地給在校學(xué)生和程序員做Java語言及技術(shù)方面的講座。
目 錄
Introduction to Java Programming and Data Structures, Comprehensive Version, Eleventh Edition 出版者的話 中文版序 譯者序 前言 第1章 計(jì)算機(jī)、程序和Java概述 1 1.1 引言 1 1.2 什么是計(jì)算機(jī) 2 1.2.1 中央處理器 2 1.2.2 比特和字節(jié) 3 1.2.3 內(nèi)存 3 1.2.4 存儲(chǔ)設(shè)備 4 1.2.5 輸入和輸出設(shè)備 4 1.2.6 通信設(shè)備 5 1.3 編程語言 6 1.3.1 機(jī)器語言 6 1.3.2 匯編語言 6 1.3.3 高級(jí)語言 7 1.4 操作系統(tǒng) 8 1.4.1 控制和監(jiān)視系統(tǒng)活動(dòng) 8 1.4.2 分配和調(diào)配系統(tǒng)資源 8 1.4.3 調(diào)度操作 8 1.5 Java、萬維網(wǎng)以及其他 9 1.6 Java語言規(guī)范、API、JDK、JRE和IDE 10 1.7 一個(gè)簡(jiǎn)單的Java程序 11 1.8 創(chuàng)建、編譯和執(zhí)行Java程序 13 1.9 程序設(shè)計(jì)風(fēng)格和文檔 16 1.9.1 正確的注釋和注釋風(fēng)格 16 1.9.2 正確的縮進(jìn)和空白 16 1.9.3 塊的風(fēng)格 17 1.10 程序設(shè)計(jì)錯(cuò)誤 17 1.10.1 語法錯(cuò)誤 17 1.10.2 運(yùn)行時(shí)錯(cuò)誤 18 1.10.3 邏輯錯(cuò)誤 19 1.10.4 常見錯(cuò)誤 19 1.11 使用NetBeans開發(fā)Java程序 20 1.11.1 創(chuàng)建Java工程 21 1.11.2 創(chuàng)建Java類 22 1.11.3 編譯和運(yùn)行類 22 1.12 使用Eclipse開發(fā)Java程序 23 1.12.1 創(chuàng)建Java工程 23 1.12.2 創(chuàng)建Java類 24 1.12.3 編譯和運(yùn)行類 24 關(guān)鍵術(shù)語 25 本章小結(jié) 26 測(cè)試題 27 編程練習(xí)題 27 第2章 基本程序設(shè)計(jì) 29 2.1 引言 29 2.2 編寫簡(jiǎn)單的程序 29 2.3 從控制臺(tái)讀取輸入 32 2.4 標(biāo)識(shí)符 35 2.5 變量 35 2.6 賦值語句和賦值表達(dá)式 37 2.7 命名常量 38 2.8 命名習(xí)慣 39 2.9 數(shù)值數(shù)據(jù)類型和操作 39 2.9.1 數(shù)值類型 39 2.9.2 從鍵盤讀取數(shù)值 40 2.9.3 數(shù)值操作符 40 2.9.4 冪運(yùn)算 42 2.10 數(shù)值型字面值 43 2.10.1 整型字面值 43 2.10.2 浮點(diǎn)型字面值 43 2.10.3 科學(xué)記數(shù)法 44 2.11 表達(dá)式求值以及操作符優(yōu)先級(jí) 44 2.12 示例學(xué)習(xí):顯示當(dāng)前時(shí)間 45 2.13 增強(qiáng)賦值操作符 47 2.14 自增和自減操作符 48 2.15 數(shù)值類型轉(zhuǎn)換 50 2.16 軟件開發(fā)過程 52 2.17 示例學(xué)習(xí):整錢兌零 55 2.18 常見錯(cuò)誤和陷阱 57 關(guān)鍵術(shù)語 59 本章小結(jié) 60 測(cè)試題 60 編程練習(xí)題 60 第3章 選擇 65 3.1 引言 65 3.2 boolean數(shù)據(jù)類型 65 3.3 if語句 67 3.4 雙分支if-else語句 69 3.5 嵌套的if語句和多分支if-else語句 70 3.6 常見錯(cuò)誤和陷阱 72 3.7 產(chǎn)生隨機(jī)數(shù) 75 3.8 示例學(xué)習(xí):計(jì)算身體質(zhì)量指數(shù) 77 3.9 示例學(xué)習(xí):計(jì)算稅率 78 3.10 邏輯操作符 81 3.11 示例學(xué)習(xí):判定閏年 84 3.12 示例學(xué)習(xí):彩票 85 3.13 switch語句 87 3.14 條件操作 90 3.15 操作符的優(yōu)先級(jí)和結(jié)合規(guī)則 91 3.16 調(diào)試 92 關(guān)鍵術(shù)語 93 本章小結(jié) 93 測(cè)試題 94 編程練習(xí)題 94 第4章 數(shù)學(xué)函數(shù)、字符和字符串 102 4.1 引言 102 4.2 常用數(shù)學(xué)函數(shù) 103 4.2.1 三角函數(shù)方法 103 4.2.2 指數(shù)函數(shù)方法 103 4.2.3 取整方法 104 4.2.4 min、max和abs方法 104 4.2.5 random方法 105 4.2.6 示例學(xué)習(xí):計(jì)算三角形的角度 105 4.3 字符數(shù)據(jù)類型和操作 107 4.3.1 Unicode和ASCII碼 107 4.3.2 特殊字符的轉(zhuǎn)義序列 108 4.3.3 字符型數(shù)據(jù)與數(shù)值型數(shù)據(jù)之間的轉(zhuǎn)換 108 4.3.4 字符的比較和測(cè)試 109 4.4 String類型 111 4.4.1 獲取字符串長(zhǎng)度 112 4.4.2 從字符串中獲取字符 112 4.4.3 連接字符串 113 4.4.4 字符串的轉(zhuǎn)換 113 4.4.5 從控制臺(tái)讀取字符串 114 4.4.6 從控制臺(tái)讀取字符 114 4.4.7 字符串比較 115 4.4.8 獲得子字符串 116 4.4.9 獲取字符串中的字符或者子串 117 4.4.10 字符串和數(shù)字間的轉(zhuǎn)換 118 4.5 示例學(xué)習(xí) 120 4.5.1 猜測(cè)生日 120 4.5.2 將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 123 4.5.3 使用字符串修改彩票程序 124 4.6 格式化控制臺(tái)輸出 126 關(guān)鍵術(shù)語 129 本章小結(jié) 129 測(cè)試題 130 編程練習(xí)題 130 第5章 循環(huán) 136 5.1 引言 136 5.2 while循環(huán) 137 5.3 示例學(xué)習(xí):猜數(shù)字 139 5.4 循環(huán)設(shè)計(jì)策略 142 5.5 使用用戶確認(rèn)或者標(biāo)記值控制循環(huán) 144 5.6 do-while循環(huán) 146 5.7 for循環(huán) 148 5.8 采用哪種循環(huán) 151 5.9 嵌套循環(huán) 153 5.10 最小化數(shù)值錯(cuò)誤 155 5.11 示例學(xué)習(xí) 156 5.11.1 求最大公約數(shù) 156 5.11.2 預(yù)測(cè)未來學(xué)費(fèi) 158 5.11.3 將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù) 158 5.12 關(guān)鍵字break和continue 160 5.13 示例學(xué)習(xí):判斷回文 163 5.14 示例學(xué)習(xí):顯示素?cái)?shù) 164 關(guān)鍵術(shù)語 167 本章小結(jié) 167 測(cè)試題 167 編程練習(xí)題 167 第6章 方法 176 6.1 引言 176 6.2 定義方法 177 6.3 調(diào)用方法 178 6.4 void方法與返回值方法 180 6.5 按值傳參 183 6.6 模塊化代碼 186 6.7 示例學(xué)習(xí):將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 188 6.8 重載方法 190 6.9 變量的作用域 192 6.10 示例學(xué)習(xí):生成隨機(jī)字符 193 6.11 方法抽象和逐步求精 195 6.11.1 自頂向下的設(shè)計(jì) 196 6.11.2 自頂向下和自底向上的實(shí)現(xiàn) 197 6.11.3 實(shí)現(xiàn)細(xì)節(jié) 199 6.11.4 逐步求精的優(yōu)勢(shì) 201 關(guān)鍵術(shù)語 202 本章小結(jié) 202 測(cè)試題 203 編程練習(xí)題 203 第7章 一維數(shù)組 212 7.1 引言 212 7.2 數(shù)組的基礎(chǔ)知識(shí) 212 7.2.1 聲明數(shù)組變量 213 7.2.2 創(chuàng)建數(shù)組 213 7.2.3 數(shù)組大小和默認(rèn)值 214 7.2.4 訪問數(shù)組元素 214 7.2.5 數(shù)組初始化簡(jiǎn)寫方式 215 7.2.6 處理數(shù)組 215 7.2.7 foreach循環(huán) 217 7.3 示例學(xué)習(xí):分析數(shù)字 219 7.4 示例學(xué)習(xí):一副牌 220 7.5 復(fù)制數(shù)組 222 7.6 將數(shù)組傳遞給方法 223 7.7 方法返回?cái)?shù)組 226 7.8 示例學(xué)習(xí):統(tǒng)計(jì)每個(gè)字母出現(xiàn)的次數(shù) 226 7.9 可變長(zhǎng)參數(shù)列表 230 7.10 數(shù)組的查找 230 7.10.1 線性查找法 231 7.10.2 二分查找法 231 7.11 數(shù)組的排序 234 7.12 Arrays類 235 7.13 命令行參數(shù) 237 7.13.1 向main方法傳遞字符串 237 7.13.2 示例學(xué)習(xí):計(jì)算器 238 關(guān)鍵術(shù)語 239 本章小結(jié) 240 測(cè)試題 240 編程練習(xí)題 240 第8章 多維數(shù)組 248 8.1 引言 248 8.2 二維數(shù)組基礎(chǔ) 248 8.2.1 聲明二維數(shù)組變量并創(chuàng)建二維數(shù)組 249 8.2.2 獲取二維數(shù)組的長(zhǎng)度 250 8.2.3 不規(guī)則數(shù)組 250 8.3 處理二維數(shù)組 251 8.4 將二維數(shù)組傳遞給方法 253 8.5 示例學(xué)習(xí):多選題測(cè)驗(yàn)評(píng)分 254 8.6 示例學(xué)習(xí):找出距離最近的點(diǎn)對(duì) 255 8.7 示例學(xué)習(xí):數(shù)獨(dú) 257 8.8 多維數(shù)組 260 8.8.1 示例學(xué)習(xí):每日溫度和濕度 261 8.8.2 示例學(xué)習(xí):猜生日 263 本章小結(jié) 264 測(cè)試題 264 編程練習(xí)題 264 第9章 對(duì)象和類 276 9.1 引言 276 9.2 為對(duì)象定義類 277 9.3 示例:定義類和創(chuàng)建對(duì)象 278 9.4 使用構(gòu)造方法構(gòu)造對(duì)象 283 9.5 通過引用變量訪問對(duì)象 284 9.5.1 引用變量和引用類型 284 9.5.2 訪問對(duì)象的數(shù)據(jù)和方法 285 9.5.3 引用數(shù)據(jù)域和null值 285 9.5.4 基本類型變量和引用類型變量的區(qū)別 286 9.6 使用Java庫中的類 288 9.6.1 Date類 288 9.6.2 Random類 289 9.6.3 Point2D類 289 9.7 靜態(tài)變量、常量和方法 291 9.8 可見性修飾符 296 9.9 數(shù)據(jù)域封裝 297 9.10 向方法傳遞對(duì)象參數(shù) 300 9.11 對(duì)象數(shù)組 303 9.12 不可變對(duì)象和類 305 9.13 變量的作用域 307 9.14 this引用 308 9.14.1 使用this引用數(shù)據(jù)域 308 9.14.2 使用this調(diào)用構(gòu)造方法 309 關(guān)鍵術(shù)語 310 本章小結(jié) 311 測(cè)試題 311 編程練習(xí)題 311 第10章 面向?qū)ο笏伎? 316 10.1 引言 316 10.2 類的抽象和封裝 316 10.3 面向?qū)ο蟮乃枷? 320 10.4 類的關(guān)系 322 10.4.1 關(guān)聯(lián) 323 10.4.2 聚集和組合 324 10.5 示例學(xué)習(xí):設(shè)計(jì)Course類 325 10.6 示例學(xué)習(xí):設(shè)計(jì)棧類 327 10.7 將基本數(shù)據(jù)類型值作為對(duì)象處理 329 10.8 基本類型和包裝類類型之間的自動(dòng)轉(zhuǎn)換 332 10.9 BigInteger和BigDecimal類 333 10.10 String類 334 10.10.1 構(gòu)造字符串 335 10.10.2 不可變字符串與駐留字符串 335 10.10.3 替換和拆分字符串 336 10.10.4 使用模式匹配、替換和拆分 336 10.10.5 字符串與數(shù)組之間的轉(zhuǎn)換 337 10.10.6 將字符和數(shù)值轉(zhuǎn)換成字符串 338 10.10.7 格式化字符串 338 10.11 StringBuilder類和StringBuffer類 340 10.11.1 修改StringBuilder中的字符串 341 10.11.2 toString、capacity、length、setLength和charAt方法 343 10.11.3 示例學(xué)習(xí):判斷回文串時(shí)忽略既非字母又非數(shù)字的字符 343 關(guān)鍵術(shù)語 346 本章小結(jié) 346 測(cè)試題 346 編程練習(xí)題 346 第11章 繼承和多態(tài) 354 11.1 引言 354 11.2 父類和子類 354 11.3 使用super關(guān)鍵字 360 11.3.1 調(diào)用父類的構(gòu)造方法 360 11.3.2 構(gòu)造方法鏈 361 11.3.3 調(diào)用父類的普通方法 362 11.4 方法重寫 363 11.5 方法重寫與重載 364 11.6 Object類及其toString()方法 366 11.7 多態(tài) 366 11.8 動(dòng)態(tài)綁定 367 11.9 對(duì)象轉(zhuǎn)換和instanceof操作符 370 11.10 Object類的equals方法 374 11.11 ArrayList類 375 11.12 關(guān)于列表的一些有用方法 381 11.13 示例學(xué)習(xí):自定義棧類 382 11.14 protected數(shù)據(jù)和方法 383 11.15 防止繼承和
你還可能感興趣
我要評(píng)論
|