Head First Java 是個完整的物件導向(object-oriented,OO)程式設計與 Java 的學習指引。此書是根據學習理論所設計的、 讓你可以從學習程式語言的基本開始一直到包括執行緒、網路、與分散式程式等項目。最重要的,你會學會如何像個物件導向開發 者一般的思考。
而且不只是讀死書-你還會玩遊戲、拼圖、解謎題、以及以意想不到的方式與 Java 互動。在這些活動中,你會寫出一堆真正的 Java 程式,包括了一個船艦炮戰型態遊戲與一個網路聊天程式。
Head First 系列的圖文並茂學習樣式能讓你快速的在腦海中掌握住知識。敞開心胸準備好學習這些關鍵性的主題:
* Java 程式語言
* 物件導向程式開發
* 撰寫、測試、與佈署應用程式
* 使用 Java API 函式庫
* 處理例外
* 多執行緒
* Swing 圖形化介面
* 網路程式設計
* 集合與泛型
如果你想要看正經八百的書,去看別的。但如果你真的想要好好的學習 Java, 你會需要 Head First Java。這本書可是 2003 與 2004 年 Amazon 編輯推薦的十大好書之一!
目錄
序
誰適合這本書?
我知道你在想什麼。
外認知:思考的思考。
你要如何讓大腦接受指揮
還有幾件你必須知道的事情
1 進入 Java 的世界
Java 的運作方式
程式結構
標註
main() 這個 method
迴圈
條件分支
設計程式
術語製造機
談話錄
習題
2 拜訪物件村
椅子大戰
繼承
override
什麼是 class?
建構你的第一個物件
使用 main()
猜數字
習題
3 認識變數
宣告變數
Primitive 型別
Java 關鍵字
參考變數
物件的宣告與指派
可回收 heap 空間
陣列
習題
4 物件的行為
操作物件狀態的 method
method 參數與回傳型別
傳值
Getters 與 Setters
封裝
陣列中的參考
習題
5 更有力的方法
建構戰艦遊戲
簡單版
撰寫 pseudocode
測試
撰寫程式
完成版
以 Math.random() 產生亂數
預先輸入好的程式
迴圈
型別轉換
以 Integer.parseInt() 轉換字串
習題
6 使用 Java 函式庫
分析 bug
ArrayList
修改戰艦遊戲
設計真正的遊戲
遊戲的 pseudocode
遊戲程式
布林運算式
使用 Java API
運用 package
查詢說明文件
習題
7 物件村的優質生活
民法親屬篇:繼承
設計繼承階層
運用繼承避免重複的程式碼
method 的 override
美人出浴圖
民法親屬篇:遺產
繼承的好處
Polymorphism
override 的規則
過載
習題
8 深入多形
不該初始化的 class
抽象 class
抽象 method
多型的應用
物件之母:Object
取出陣列元素
編譯器對參考型別的檢查
探索你的深處
多型參考
物件參考型別轉換
多重繼承的麻煩
使用 interface
習題
9 物件的前世今生
物件與變數的生存空間
stack 上的 method
區域變數的空間
實體變數的空間
建構物件的奇蹟
constructors
鴨子的初始狀態
constructor 的 override
Superclass constructors
使用 this( )
物件生命週期
資源回收
習題
10 數字很重要
Math class
靜態 methods
靜態 variables
常數
Math method
包裝用的 class
Autoboxing
數字的格式化
日期的格式化與操作
靜態的引用
習題
11 有風險的行為
建構點唱機
呼叫有風險的程式碼
例外
編譯器會確認你已經明瞭風險
攔截例外狀況
try/catch 的流程控制
finally 區塊
攔截多重例外
宣告例外
處理或再拋出
程式料理
習題
12 看圖說故事
GUI 第一步
取得使用者事件
實做 listener
取得 ActionListener
GUI 的圖像
paintComponent() 樂趣多又多
Graphics2D 物件
加入更多的 button
內層 class
動畫
程式料裡
習題
13 使用 Swing
Swing 元件
Layout 管理員
三種 Layout 管理員
BorderLayout
FlowLayout
BoxLayout
JTextField
JTextArea
JCheckBox
JList
程式料理
習題
14 保存物件
儲存物件狀態
寫入檔案的序列化物件
輸出入串流
物件序列化
實做 Serializable
使用暫態變數
物件解序列化
寫入文字檔
java.io.File
讀取文字檔
拆解字串
程式料理
習題
15 網路連線
聊天程式概觀
連結、發送、與接收
網路的 socket
TCP 埠
讀取 socket
對 socket 寫入資料
每日一句
簡單的伺服器
伺服器程式碼
撰寫用戶端
多重交談
啟動新的 thread
Runnable
Thread 物件三態
任務迴圈
Thread 排程
Thread 的睡眠品質
啟動兩個 thread
同步執行的問題
名人醜聞
不可切割的動作
大家都有鎖
哈利與波特:消失的異動
同步化的 method
死結!
多緒用戶端程式
SimpleChatServer
習題
16 資料結構
Collections
集合的排序
泛型與型別安全
Comparable 的排序
自訂 Comparator
集合的 API
可避免重複的 HashMap
hashCode() 與 equals()
HashMap
多型的萬用字元
習題
17 發佈程式
部署的選擇
將原始檔與 class 檔分開
可執行的 JAR
執行 JAR 檔案
將 class 打包
package 的目錄結構
編譯與執行 package
加上 -d 的編譯動作
建構可執行的 JAR
Java Web Start (JWS)
建構與部署 JWS 程式
習題
18 分散式運算
Java Remote Method Invocation (RMI)
Servlets
Enterprise JavaBeans (EJB)
Jini
通用服務瀏覽器
尾聲
附錄 A
BeatBoxFinal (用戶端)
MusicServer (伺服器端)
附錄 B
十大排行榜
索引
序
誰適合這本書?
我知道你在想什麼。
外認知:思考的思考。
你要如何讓大腦接受指揮
還有幾件你必須知道的事情
1 進入 Java 的世界
Java 的運作方式
程式結構
標註
main() 這個 method
迴圈
條件分支
設計程式
術語製造機
談話錄
習題
2 拜訪物件村
椅子大戰
繼承
override
什麼是 class?
建構你的第一個物件
使用 main()
猜數字
習題
3 認識變數
宣告變數
Primitive 型別
Java 關鍵字
...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。