內容簡介
內容簡介 內容介紹: 本書是暢銷書《C 語言教學手冊》姊妹作,做為帶您進入 Java 程式語言世界的墊腳石,從 Java 的基礎開始,循序漸進地引導您學習 Java 程式設計,然後一步步地深入瞭解 Java 的應用。透過本書,您將掌握 Java 的基本語法、物件導向程式設計(OOP)的概念與實作,以及 Java 集合物件、多執行緒等進階主題與應用。本書經過歷次改版,去蕪存菁,在實作上更與時俱進,使用廣受業界工程師喜愛的 Visual Studio Code(以下簡稱 VSCode) 作為開發環境,VSCode 具有跨平台、跨語言、輕量、豐富延伸套件及內建除錯器的特色,不但可以提升學習成效,也能與未來業界接軌。本書撰寫過程中經過多位學生試讀並實作總數超過 300 題的習題,參考相當多的建議修正,使得內容具親和性、學習起來更加得心應手。本書特色: □ 使用 VSCode 開發與業界接軌□ 超過 300 題習題反覆練到會□ 詳細圖解說明觀念最清晰□ 多執行緒、集合等進階主題□ 經課堂試教、試讀、試做驗證目錄: 第一章 認識 Java1.1 歷史的回顧1.1.1 Java 的發展歷史1.1.2 Java 的特點1.2 Java 的虛擬機器與未來1.3 安裝 VSCode 並撰寫第一個Java程式1.4 設定 VSCode習題第二章 簡單的 Java 程式2.1 一個簡單的例子2.2 變數2.2.1 變數的宣告與設值2.2.2 變數命名的規則2.3 輸出函數 println()2.4 關鍵字及識別字2.4.1 關鍵字2.4.2 識別字2.5 當執行發生錯誤時2.5.1 語法錯誤2.5.2 語意錯誤2.6 提高程式的可讀性習題第三章 變數與資料型別3.1資料型別與變數3.1.1 資料型別3.1.2 變數的宣告與設值3.2整數型別3.2.1 宣告整數變數並設定初值3.2.2 以二進位、八進位和十六進位表示整數3.2.3 簡單易記的代碼3.2.4 溢位的發生3.3 浮點數型別3.4 字元型別3.5 布林型別3.6 格式化列印資料3.7 由鍵盤輸入資料習題第四章 運算子、運算式與敘述4.1 運算式與運算子4.1.1 算術運算子4.1.2 設定運算子4.1.3 遞增與遞減運算子4.1.4 關係運算子4.1.5 邏輯運算子4.1.6 位元運算子4.2 運算子的優先順序4.3 資料型別轉換4.3.1 自動型別轉換4.3.2 強制型別轉換習題第五章 程式流程控制5.1 程式的結構設計5.2 選擇性敘述5.2.1 if 敘述5.2.2 if-else 敘述5.2.3 if-else 的簡潔版─條件運算子5.2.4 更多的選擇─巢狀 if 敘述5.2.5 更好用的多重選擇─switch 敘述5.3 for 迴圈5.3.1 簡單的 for 迴圈5.3.2 在 VSCode 裡偵錯迴圈5.3.3 for 迴圈裡的區域變數5.3.4 初值與判斷條件的設定5.4 while與 do-while 迴圈5.4.1 while 迴圈5.4.2 do-while 迴圈5.5 巢狀迴圈5.6 迴圈的跳離5.6.1 break 敘述5.6.2 continue 敘述習題第六章 陣列6.1 一維陣列6.1.1 一維陣列的宣告與記憶體的配置6.1.2 陣列元素的存取6.1.3 陣列初值的設定6.1.4 利用 for each 走訪陣列裡的元素6.2 二維陣列6.2.1 二維陣列與初值的設定6.2.2 二維陣列元素的走訪6.2.3 每列元素個數不同的二維陣列6.3 多維陣列6.4 陣列變數的設值與比較習題第七章 函數7.1 函數的基本概念7.1.1 簡單的範例7.1.2 函數的引數與傳回值7.1.3 傳遞給函數的引數7.2 陣列的傳遞7.2.1 傳遞一維陣列7.2.2 傳遞二維陣列7.2.3 傳回陣列的函數7.2.4 陣列的傳遞機制7.3 遞迴7.4 函數的多載習題第八章 類別8.1 認識類別8.1.1 類別的基本概念8.1.2 類別的定義語法8.1.3 建立新的物件8.1.4 使用類別來設計完整的程式8.1.5 同時建立多個物件8.2 函數成員的使用8.2.1 定義與使用函數成員8.2.2 另一個簡單的範例8.2.3 資料成員的存取方式8.2.4 函數成員的相互呼叫8.3 引數的傳遞與傳回值8.3.1 呼叫函數並傳遞引數8.3.2 傳遞多個引數8.3.3 沒有傳回值的函數8.3.4 有傳回值的函數8.4 函數成員的多載8.4.1 多載8.4.2 使用多載常犯的錯誤8.5 公有成員與私有成員8.5.1 建立私有資料成員8.5.2 建立公有函數成員8.5.3 省略 public 與 private 關鍵字習題第九章 類別的進階認識9.1 建構子9.1.1 建構子的基本認識9.1.2 建構子的多載9.1.3 兩個建構子之間的呼叫9.1.4 建構子的公有與私有9.1.5 建構子的省略9.2 類別變數與類別函數9.2.1 實例變數與實例函數9.2.2 類別變數9.2.3 類別函數9.2.4 main() 函數之前的 static 修飾子9.2.5 類別函數使用的限制9.3 物件變數的使用9.3.1 設值給物件變數9.3.2 傳遞物件變數到函數9.3.3 從函數傳回物件變數9.4 利用陣列來儲存物件9.4.1 建立物件陣列的範例9.4.2 傳遞物件陣列到函數裡9.5 內部類別9.5.1 內部類別的撰寫9.5.2 取用內部類別的成員9.6 回收記憶體習題第十章 類別的繼承10.1 繼承的基本概念10.1.1 簡單的繼承範例10.1.2 建構子的呼叫10.1.3 使用建構子常見的錯誤10.2 保護成員10.3 改寫10.3.1 改寫父類別的函數10.3.2 以父類別的變數存取子類別物件的成員10.4 再談 super 與 this10.5 物件導向裡的 is-a 與 has-a10.6 設定終止繼承10.7 類別之源的 Object 類別習題第十一章 抽象類別與介面11.1 抽象類別11.1.1 定義抽象類別11.1.2 抽象類別的實作11.1.3 用抽象類別型態的變數來建立物件11.1.4 使用抽象類別的注意事項11.2 介面的使用11.3 實現多重繼承─多重實作11.4 介面的繼承11.5 類別關係的判別─instanceof習題第十二章 大型程式的發展與常用的類別庫12.1 檔案的分割12.2 使用 package12.2.1 package 的基本概念12.2.2 將不同檔案中的類別納入同一個 package 中12.3 存取不同 package 裡的類別12.3.1 簡單的範例12.3.2 public、 private 與 protected 修飾子的角色12.3.3 匯入packages12.4 建構 package 的階層關係12.5 VSCode 的 Project 管理12.5.1 VSCode 的 project12.5.2 VSCode 的工作區12.6 Java 常用的類別庫12.6.1 有關字串的類別庫12.6.2 StringBuffer 類別庫12.6.3 wrapper class12.6.4 使用 Math 類別習題第十三章 例外處理13.1 例外的基本觀念13.1.1 為何需要例外處理?13.1.2 簡單的例外範例13.1.3 例外的處理13.1.4 例外處理機制的回顧13.2 例外類別的繼承架構13.3 拋出例外13.3.1 主動拋出例外13.3.2 預期的例外由指定函數拋出13.4 自己撰寫例外類別13.5 拋出輸出 輸入的例外類別13.5.1 拋出輸入型態不合的例外13.5.2 拋出 IOException 例外類別習題第十四章 檔案處理14.1 關於串流14.2 檔案的基本處理14.2.1 讀取檔案的內容--使用 FileReader14.2.2 將資料寫入檔案--使用 FileWriter 類別14.3 利用緩衝區來讀寫資料14.3.1 從緩衝區讀取資料--使用 BufferedReader 類別14.3.2 將資料寫入緩衝區--使用 BufferedWriter 類別14.4 使用 InputStream 與 OutputStream 類別14.4.1 讀取檔案的內容--使用 FileInputStream 類別14.4.2 將資料寫入檔案--使用 FileOutputStraem 類別習題第十五章 多執行緒15.1 認識執行緒15.2 實作 Runnable 介面來建立執行緒15.3 執行緒的管理15.3.1 執行緒的生命週期15.3.2 讓執行緒小睡片刻15.3.3 等待執行緒15.3.4 執行緒的優先順序15.4 同步處理習題第十六章 Java collection 集合物件16.1 認識集合物件16.1.1 認識 collection 架構16.1.2 簡單的範例16.1.3 泛型與 collection16.1.4 集合的特性16.2 Set 介面16.2.1 HashSet 類別16.2.2 TreeSet 類別16.3 List 介面16.3.1 LinkedList 類別16.3.2 ArrayList 類別16.4 實作 Map 介面16.4.1 HashMap 類別16.4.2 TreeMap 類別16.5 走訪集合物件的元素16.5.1 使用 Iterator 走訪元素16.5.2 使用 ListIterator 走訪元素習題第十七章 圖形使用者介面與事件處理17.1 圖形使用者介面概述17.2 使用 Swing 物件17.2.1 Swing 的 JFrame 視窗17.2.2 按鈕與標籤17.2.3 使用 JLabel 標籤17.3 版面配置與管理17.3.1 使用 BorderLayout 類別17.3.2 使用 FlowLayout 類別17.4 委派事件模式17.4.1 簡單的範例17.4.2 定義內部類別當成傾聽者17.4.3 認識事件處理類別17.5 更多類型的元件17.5.1 核取方塊17.5.2 捲軸17.5.3 文字處理習題第十八章 網路程式設計18.1 網址與 InetAddress 類別的使用18.2 認識 URL18.3 建立主從架構程式 -- 使用 Socket 類別習題附錄 A ASCII 碼表附錄 B 事件處理類別中文索引英文索引