Absolute Java, 6/e (簡體中文版)

師蓉, 沃爾特·薩維奇 (Walter Savitch), 肯里克·莫克 (Kenrick Mock)

買這商品的人也買了...

商品描述

本書側重於面向對象設計,通過淺顯易懂的語言和代碼,很好地平衡了完整實例和解釋性討論,並圍繞著Java 語言的特性全面透徹地介紹諸多編程技術。書中全面介紹了Java 語言已經實現的封裝、繼承和多態性技術,並在介紹Swing GUI 的時候提及了事件驅動的編程,在介紹UML 和模式的同時進一步介紹了OOP。本書每節後都設計了相應的練習題,每章後都有針對本章內容的編程項目。本書不僅適合初學者使用,還可以作為使用Java 的後續電腦科學課程的參考書。

作者簡介

Walter John Savitch(生於1943年2月21日)由於發現了複雜性類NL(非確定型對數空間)、以及定義NSPACE和DSPACE複雜性類之間關係的Savitch定理而被人熟知。他為建立復雜性類所做的工作有助於我們創建執行非確定性和概率推理的背景。他還在自然語言處理和數學語言學領域做了大量的工作。他一直專注於計算機計算,因為它在10年前就已經被應用到遺傳學和生物學。除了在理論計算機科學上所做的工作,Savitch還編著了很多關於學習使用C/C++、Java、Ada、Pascal等語言進行編程的教科書。在Stephen Cook的指導下,Savitch在1969年獲得了加州大學伯克利分校的數學博士學位。
從那時候開始他就一直是加州大學聖地亞哥分校(UCSD)的教授,現在他還是計算機科學專業的名譽教授。

目錄大綱

第1章入門知識1 
1.1 Java簡介2 
Java語言的起源2 
對象和方法3 
小程序(applet) 4 
一個Java應用程序示例4 
字節碼和Java虛擬機7 
類裝載器9 
編譯一個Java程序或類9 
運行一個Java程序9 
小貼士:錯誤消息10 
1.2表達式和賦值語句11 
標識符11 
變量12 
賦值語句14 
小貼士:初始化變量15 
更多賦值語句知識16 
賦值兼容性17 
常量18 
算數運算符和表達式19 
括號和優先級規則20 
整數和浮點數除法22 
陷阱:浮點數的捨入錯誤22 
陷阱:整數相除23 
類型轉換24 
自增運算符和自減運算符25 
1.3 String類27 
字符串常量和變量27 
字符串連接28 
類29 
String類的方法30 
轉義字符34 
字符串處理35 
Unicode字符集36
1.4程序風格37 
命名常量37 
Java拼寫約定39 
註釋40 
縮進41 
本章小結41 
自測題答案42 
編程項目44 

第2章流程控制47 
2.1屏幕輸出48 
System.out.println 48 
小貼士:編輯輸出格式的不同方法50 
使用printf編輯輸出格式51 
小貼士:用printf編輯金額格式54 
小貼士:遺留代碼55 
使用NumberFormat編輯金額輸出格式56 
導入包和類58 
DecimalFormat類59 
2.2使用Scanner類進行控制台輸入62 
Scanner類63 
陷阱:行終止符'\n'的處理67 
空字符串68 
小貼士:輸入提示68 
小貼士:輸入反饋68 
示例:自助結賬程序70 
其他輸入分隔符70 
2.3文件輸入簡介72 
用Scanner類進行文本文件輸入72 
本章小結75 
自測題答案75 
編程項目77 

第3章控制流81 
3.1分支機制82 
if-else語句82
省略else 83 
複合語句83 
小貼士:放置花括號84 
嵌套語句85 
多分支if-else語句86 
示例:州所得稅86 
switch語句88 
陷阱:忘記switch語句中的break 91 
條件運算符92 
3.2布爾表達式92 
簡單布爾表達式93 
陷阱:用=代替== 93 
陷阱:使用==比較字符串94 
字典順序和字母順序95 
建立布爾表達式97 
陷阱:不等式串98 
計算布爾表達式98 
小貼士:命名布爾boolean變量101 
短路求值與完整求值101 
優先級和結合規則102 
3.3循環107 
while語句和do-while語句108 
算法和偽代碼110 
示例:分數列表的平均分112 
for語句113 
for語句中的逗號115 
小貼士:重複N次循環116 
陷阱:for語句中多餘的分號116 
陷阱:無限循環117 
嵌套循環118 
break語句和continue語句120 
exit語句121 
3.4調試122
循環bug 122 
跟踪變量122 
常規調試技術123 
示例:調試一個輸入驗證循環124 
預防性編碼127 
斷言檢查127 
3.5生成隨機數129 
Random對象130 
Math.random( )方法131 
本章小結132 
自測題答案132 
編程項目136 

第4章類的定義I 141 
4.1類的定義概述142 
實例變量和方法145 
方法續論147 
小貼士:任何方法都能用作void方法150 
局部變量152 
塊152 
小貼士:在一個for語句中聲明變量153 
原始類型參數154 
陷阱:術語“形參”和“實參”的使用159 
類參數的簡單示例160 
this參數160 
返回布爾值的方法162 
方法equals和toString 164 
遞歸方法166 
小貼士:對方法進行測試167 
4.2信息的隱藏和封裝168 
修飾符public和private 169 
示例:另一個日期類170 
get和set方法171
小貼士:一個類可以訪問該類所有對象的私有成員174 
小貼士:set方法可以返回一個布爾值175 
前置條件和後置條件176 
4.3重載177 
重載的規則177 
陷阱:重載與自動類型轉換180 
陷阱:不能根據返回類型進行重載182 
4.4構造函數183 
構造函數的定義183 
小貼士:你可以在構造函數中調用另一個方法190 
小貼士:構造函數帶有一個this參數190 
小貼士:添加一個無參數構造函數190 
示例:日期類的最終版本191 
默認變量初始化192 
另一種初始化實例變量的方法192 
示例:一個寵物記錄類193 
StringTokenizer類196 
本章小結200 
自測題答案201 
編程項目204 

第5章類的定義II 211 
5.1靜態方法和靜態變量212 
靜態方法212 
陷阱:在靜態方法中調用非靜態方法215 
小貼士:你可以在任何類中放置main函數215 
靜態變量218 
Math類222 
封裝類225 
自動裝箱和拆箱226 
封裝類中的靜態方法227 
陷阱:封裝類沒有無參數構造函數229
5.2引用和類參數231 
變量和內存231 
引用232 
類參數237 
陷阱:對類類型的變量使用=和== 240 
常量null 241 
陷阱:空指針異常242 
new運算符和匿名對象242 
示例:鍵盤輸入的另一種方法243 
小貼士:使用靜態導入245 
5.3引用的使用和濫用246 
示例:Person類246 
陷阱:null可以作為方法的參數251 
拷貝構造函數253 
陷阱:隱私洩露255 
可變類和不可變類258 
小貼士:深拷貝vs.淺拷貝259 
小貼士:假設你的同事是惡意的260 
5.4包和javadoc 260 
包和import語句261 
java.lang包262 
包名和目錄262 
陷阱:子類不是自動導入的264 
默認包264 
陷阱:不要在類路徑中包含當前目錄264 
編譯時指定類路徑265 
命名衝突266 
javadoc簡介266 
為javadoc註釋類267 
運行javadoc 268 
本章小結269 
自測題答案270 
編程項目273

第6章數組279 
6.1數組簡介280 
數組的創建和訪問280 
length實例變量283 
小貼士:在數組中使用for循環284 
陷阱:數組下標總是從0開始285 
陷阱:數組越界285 
數組的初始化285 
陷阱:字符數組不是字符串287 
6.2數組和引用287 
數組是對象288 
陷阱:具有類基本類型的數組289 
數組參數289 
陷阱:在數組中使用=和== 291 
main方法的參數294 
返回數組的方法295 
6.3用數組進行編程297 
部分填充數組297 
示例:部分填充數組的類300 
小貼士:get方法不需要返回實例變量303 
“for-each”循環303 
參數個數可變的方法306 
示例:一個字符串處理示例308 
數組實例變量的隱私洩露309 
示例:對數組排序312 
枚舉類型315 
小貼士:在switch語句中使用枚舉類型319 
6.4多維數組321 
多維數組的基礎知識321 
使用length實例變量323 
參差數組323 
多維數組參數和返回值324
示例:一個成績冊類325 
本章小結330 
自測題答案330 
編程項目336 

第7章繼承343 
7.1繼承的基礎知識344 
派生類344 
重寫方法的定義352 
修改重寫方法的返回類型353 
修改重寫方法的訪問權限354 
陷阱:重寫vs.重載354 
super構造函數355 
this構造函數356 
小貼士:派生類的對像有多個類型357 
陷阱:術語子類和超類359 
示例:增強的StringTokenizer類359 
7.2封裝和繼承362 
陷阱:基類中私有變量的使用362 
陷阱:私有方法不能被有效地繼承364 
受保護訪問和包訪問364 
陷阱:忘記默認包366 
陷阱:受保護訪問的限制366 
7.3使用繼承編程368 
小貼士:靜態變量是繼承的368 
小貼士:“is a”vs. “has a” 369 
訪問重新定義的基類方法369 
陷阱:你不能使用多個super 370 
Object類371 
定義equals的正確方式371 
小貼士:getClass vs. instanceof 373 
本章小結377
自測題答案377 
編程項目380 

第8章多態與抽像類385 
8.1多態386 
後期綁定386 
final修飾符388 
示例:銷售記錄389 
在toString中使用後期綁定394 
陷阱:靜態方法不使用後期綁定395 
向下轉型和向上轉型396 
陷阱:向下轉型398 
小貼士:檢查向下轉型是否是合法的399 
clone方法淺析400 
陷阱:有時clone方法的返回類型是對象401 
陷阱:拷貝構造函數的限制402 
8.2抽像類405 
抽像類綜述405 
陷阱:你無法創建抽像類的實例408 
小貼士:抽像類是一種類型409 
本章小結410 
自測題答案410 
編程項目412 

第9章異常處理415 
9.1異常處理基礎知識416 
try-catch機制417 
用Scanner類進行異常處理418 
小貼士:異常控制的循環419 
拋出異常421 
示例:異常處理的“玩具”示例422 
異常類426 
標準包中的異常類427
定義異常類