內容簡介
這是一本關於Java和計算機編程的入門教材,書中重點關注基礎知識,並強調如何有效地學習。本書共分三部分。部分(第1~7章)是基礎知識,首先簡要介紹瞭計算機科學和Java編程,展示瞭如何管理預定義的類以及如何根據給定的規範定義類,之後講解瞭基本數據類型、分支、循環和數組;第二部分(第8~12章)講解麵嚮對象設計,包括類的設計、繼承和多態、接口、異常處理和基本文件輸入/輸齣,以及兩個重要的案例研究;第三部分是在綫內容,講解瞭數據結構與算法,具體包括遞歸、排序和查找、鏈錶、集閤、映射、棧和隊列。本書非常適閤作為計算機科學傢、工程師和其他學科學生的本編程教材。
目錄
目 錄
Java Concepts: Early Objects (Eighth Edition)
齣版者的話
譯者序
前言
學習輔助手段介紹
緻謝
特色內容
第一部分 基礎知識
第1章 引言 2
1.1 計算機程序 2
1.2 計算機剖析 3
計算與社會1.1 計算機無處不在 4
1.3 Java編程語言 5
1.4 熟悉你的編程環境 7
編程技巧1.1 備份副本 10
1.5 分析你的第一個程序 10
常見錯誤1.1 缺少分號 13
1.6 錯誤 14
常見錯誤1.2 單詞拼寫錯誤 15
1.7 解決問題:算法設計 15
1.7.1 算法概念 16
1.7.2 解決一個投資問題的算法 16
1.7.3 僞代碼 17
1.7.4 從算法到程序 18
操作指南1.1 用僞代碼描述算法 19
實用示例1.1 編寫一個鋪地闆瓷磚的算法 21
第2章 使用對象 31
2.1 對象和類 31
2.1.1 使用對象 32
2.1.2 類 32
2.2 變量 33
2.2.1 變量聲明 33
2.2.2 類型 35
2.2.3 名 35
2.2.4 注釋 36
2.2.5 賦值 37
常見錯誤2.1 使用未聲明或未初始化的變量 39
常見錯誤2.2 混淆變量聲明和賦值語句 39
編程技巧2.1 選擇描述性的變量名 39
2.3 調用方法 40
2.3.1 類的公共接口 40
2.3.2 方法參數 40
2.3.3 返迴值 42
2.3.4 方法聲明 43
編程技巧2.2 通過嘗試來學習 44
2.4 構造對象 45
常見錯誤2.3 試圖如調用方法一樣調用構造函數 47
2.5 訪問器和修改器方法 47
2.6 API文檔 48
2.6.1 瀏覽API文檔 49
2.6.2 包 50
編程技巧2.3 不要強記,使用在綫幫助 51
2.7 實現一個測試程序 51
專題2.1 在交互環境中測試類 53
實用示例2.1 你活瞭多少天? 54
實用示例2.2 處理圖片 54
2.8 對象引用 54
計算與社會2.1 計算機壟斷 57
2.9 圖形應用 57
2.9.1 幀窗口 58
2.9.2 在組件上繪製 59
2.9.3 在幀窗口中顯示組件 61
2.10 橢圓、綫、文本和顔色 62
2.10.1 橢圓和圓 63
2.10.2 綫 63
2.10.3 繪製文本 64
2.10.4 顔色 64
第3章 實現類 78
3.1 實例變量和封裝 78
3.1.1 實例變量 78
3.1.2 Counter類的方法 80
3.1.3 封裝 80
3.2 指定類的公共接口 82
3.2.1 指定方法 82
3.2.2 指定構造函數 83
3.2.3 使用公共接口 85
3.2.4 為公共接口加注釋 85
常見錯誤3.1 將構造函數聲明為void 88
編程技巧3.1 javadoc工具 88
3.3 提供類實現 89
3.3.1 提供實例變量 89
3.3.2 提供構造函數 89
3.3.3 提供方法 91
常見錯誤3.2 忽略參數變量 93
操作指南3.1 實現一個類 94
實用示例3.1 建立一個簡單的菜單 97
3.4 單元測試 98
計算與社會3.1 電子投票機 99
3.5 解決問題:跟蹤對象 100
3.6 局部變量 102
常見錯誤3.3 在局部變量中重復實例變量 103
常見錯誤3.4 提供不必要的實例變量 104
常見錯誤3.5 忘記在構造函數中初始化對象引用 105
3.7 this引用 105
專題3.1 從一個構造函數調用另一個構造函數 108
3.8 圖形類 108
操作指南3.2 繪製圖形 112
第4章 基本數據類型 127
4.1 數字 127
4.1.1 數字類型 127
4.1.2 常量 129
專題4.1 大數 134
編程技巧4.1 不要使用魔法數 134
4.2 算術運算 135
4.2.1 算術操作符 135
4.2.2 自增和自減 135
4.2.3 整除和求餘 135
4.2.4 冪和平方根 136
4.2.5 浮點數轉換為整數 138
常見錯誤4.1 意外的整除 139
常見錯誤4.2 小括號不匹配 140
編程技巧4.2 錶達式中的空格 140
Java 8說明4.1 避免負餘數 140
專題4.2 結閤賦值和算術運算 141
專題4.3 實例方法和靜態方法 141
計算與社會4.1 奔騰處理器的浮點數bug 141
4.3 輸入和輸齣 143
4.3.1 讀取輸入 143
4.3.2 格式化輸齣 144
操作指南4.1 完成計算 147
實用示例4.1 計算金字塔的體積和錶麵積 150
4.4 解決問題:先手動完成 150
實用示例4.2 計算旅行時間 152
4.5 字符串 152
4.5.1 String類型 152
4.5.2 字符串連接 153
4.5.3 字符串輸入 154
4.5.4 轉義序列 154
4.5.5 字符串和字符 154
4.5.6 子串 155
編程技巧4.3 閱讀異常報告 157
專題4.4 使用對話框提供輸入和輸齣 158
計算與社會4.2 國際字母錶和Unicode 158
第5章 判斷 174
5.1 if語句 174
編程技巧5.1 大括號布局 177
編程技巧5.2 總是使用大括號 178
常見錯誤5.1 if條件後有分號 178
編程技巧5.3 製錶符 178
專題5.1 條件操作符 179
編程技巧5.4 避免不同分支中重復 179
5.2 比較值 180
5.2.1 關係操作符 180
5.2.2 比較浮點數 181
5.2.3 比較字符串 182
5.2.4 比較對象 183
5.2.5 測試null 184
常見錯誤5.2 使用==比較字符串 185
操作指南5.1 實現一個if語句 186
實用示例5.1 抽取中間字符 188
計算與社會5.1 丹佛機場的行李處理係統 188
5.3 多個候選條件 189
專題5.2 switch語句 192
5.4 嵌套分支 193
編程技巧5.5 手動跟蹤 196
常見錯誤5.3 空懸else問題 197
專題5.3
前言/序言
前 言Java Concepts: Early Objects (Eighth Edition)這是一本關於Java和計算機編程的入門教材,書中重點關注基礎知識,並強調如何有效地學習。本書麵嚮有不同興趣和能力層次不同的廣大學生,非常適閤作為計算機科學傢、工程師和其他學科學生的第一本編程教材。本書不要求讀者有任何編程經驗,隻需要掌握一定的高中代數知識就可以學習。
本書有以下主要特點。
對象先行,漸進地講授麵嚮對象知識。
第2章將講解如何使用標準庫中的對象和類。第3章會介紹根據給定規範實現類的基本機製,這樣學生就可以在掌握分支、循環和數組的同時使用簡單的對象。麵嚮對象設計將從第8章開始介紹。這種漸進的方法可以讓學生在研究核心算法有關內容的整個過程中使用對象,而不會養成一些壞習慣,否則以後還得花很大力氣纔能改掉這些壞習慣。
指導和實用示例可以幫助學生達成學習目標。
初學的程序員通常會問“怎麼開始?現在我要做什麼?”當然,作為一種十分復雜的活動,編程肯定無法簡化成一組菜譜式的指令。不過,逐步指導對於建立自信很有幫助,還有助於為當前任務提供一個大緻的輪廓。這種“操作指南”可以幫助學生完成常見的編程任務。我們還在綫提供瞭另外一些實用示例。
明確指齣解決問題的策略。
實用、循序漸進的技術講解可以幫助學生為編程問題設計解決方案並做齣評價。書中會在閤適的位置介紹解決問題的策略,這些策略可以幫助學生剋服障礙,獲得成功。具體包括:
算法設計(利用僞代碼)跟蹤對象先手動處理(手寫演算)流程圖選擇測試用例手動跟蹤故事闆先解決比較簡單的問題調整算法通過管理實體對象發現算法對象數據模式遞歸地思考估計一個算法的運行時間實踐鍛造完美。
當然,學習編程的學生還要能夠實現不太簡單的程序,不過首先他們要有能夠成功的信心。本書每一節最後都有大量自查問題。“實踐”環節指齣瞭每一節之後可以嘗試的練習。另外我們還在綫提供瞭額外的實踐機會,包括一些自動評分的編程練習和強調技能的多選題。
形象直觀的方法促進並方便讀者閱讀。
照片以類比的方式形象地解釋瞭計算機概念的內涵和行為。循序漸進的圖錶詳細展示瞭復雜的程序操作。語法框和示例錶以一種緊湊的格式提供瞭大量典型和特殊的用例。藉助這些視覺手段,在集中精力學習文字內容之前就能對大緻情況有所瞭解。
強調基礎,同時保證技術準確。
對於剛開始學習編程的人來說,百科全書式的麵麵俱到並沒有太大幫助,不過也不能矯枉過正,將內容縮減為一個過於簡化的要點列錶對初學者同樣沒有好處。本書會成塊地介紹基礎知識,方便讀者消化吸收。另外,在讀者希望獲得更多信息時,我們會提供單獨的說明,更深入地介紹一些好的實踐做法或語言特性。這裏不會人為地過於簡化來給人以知識的幻覺。
加強工程實踐。
書中關於軟件質量和常見錯誤給齣瞭大量很有用的提示,這些將鼓勵讀者養成良好的編程習慣。可選的測試活動強調測試驅動開發,鼓勵學生係統地測試程序。
提供一個可選的圖形活動。
圖形是對象的一個非常好的例子。很多學生喜歡編寫創建圖形或使用圖形用戶界麵的程序。如果需要,可以使用第2章、第3章和第10章最後的材料在課程中加入這些內容。
包含可選的科學和商業練習。
每一章最後都會針對科學和商業領域的問題給齣一些高級練習。設計這些練習是為瞭讓學生更多地參與,這些練習體現瞭編程在應用領域的作用和意義。
本版新增內容針對Java 8全麵更新Java 8引入瞭很多令人興奮的新特性,本書這一版已經全麵更新來利用這些特性。現在接口可以有默認和靜態方法,另外由於引入瞭lambda錶達式,所以可以很容易地為隻有一個方法的接口提供實例。關於接口的一章和介紹排序的章節也已經更新,以便根據需要利用這些新特性。
另外,如try-with-resources語句等Java 7特性會放在正文中介紹。
交互式學習Codecheck(代碼檢查)是一個創新的在綫服務,學生可以利用這個服務解決編程問題。你可以布置已準備的練習,也可以很容易地增加你自己的練習。有關的更多內容請訪問http://codecheck.it。
本書結構本書很自然地分為三大部分,如圖1所示。各章的組織與前一版同樣靈活;圖中還展示瞭各章之間的依賴關係。
第一部分 基礎知識(第1章~第7章)第1章是對計算機科學和Java編程的一個簡要介紹。第2章展示如何管理預定義類的對象。第3章中介紹根據給定的規範構建你自己的簡單類。第4章~第7章介紹基本數據類型、分支、循環和數組。
第二部分 麵嚮對象設計(第8章~第12章)第8章用係統的方式開始介紹類設計這一主題,還會介紹UML記法的一個非常簡單的子集。關於多態和繼承的討論分為兩章。第9章介紹繼承和多態,第10章介紹接口。異常處理和基本文件輸入/輸齣在第11章介紹。異常層次體係提供瞭繼承的一個很有用的例子。第12章提供瞭麵嚮對象設計的一個介紹,還包括兩個重要的案例研究。
Java程序設計概念:對象先行(原書第8版) 下載 mobi epub pdf txt 電子書 格式