本章介紹 Java 的跨平台與物件導向特性,以及在企業網頁與 android 開發的廣泛應用。也說明 Java 的優點與缺點:跨平台、功能完善、需求高,但需編譯且速度較慢。
學習第一個 Java 程式,理解 Java 程式碼是純文本檔,以 .java 結尾,透過編譯器編譯成 class 檔,再由 Java 虛擬機執行,實現平台獨立性;以 Hello world 範例示範編譯與執行流程,並說明日後會改用 IDE 進行編寫。
本章說明 Java 的基本語法與函數(在 Java 中稱為 methods)的輸入輸出概念。學會 class 命名規則(檔名與 class 名稱同名、首字母大寫)與 public static void main(string[] args) 的寫法,並在 IntelliJ IDEA 建立專案、撰寫 hello world 並執行。
本課用 Java 示範變數與指派的概念,透過 int x 的實作展示 x = x + 1 的運作。並說明語法糖、命名規則與 final 常量等慣例,讓程式碼更易讀並促進團隊協作。
學習 Java 字串與 stream 的基本操作,掌握長度、索引取字元、字元在字串中的位置、大小寫轉換,以及整數解析等實作要點。
掌握 Java 的關係運算子與條件運算子,理解相等、不等於及大於小於等比較所產生的布林結果,並區分賦值與比較,以及非原始資料型別的相等方法。
在 java 中,+ 運算對數字加法,遇到字串即串接;整數相除會截斷,需轉成 double/float 才有小數;字串與數字混用乘除會出現型別錯誤。
以 java swing 建立輸入疫苗名稱並顯示資訊的介面,提供 A 字、BNT、莫德納與 Jensen 等選項。輸入轉小寫後比對,符合者顯示資料,否則請重新輸入,並提及下章再講陣列與迴圈。
說明 ArrayList 的型別參數不能是原始型別,必須使用 Integer。解釋二維陣列的概念與在 Java 的宣告方式,並用四乘三的範例說明其外層與內層結構。
介紹 java 的 while loop 作為一種控制流,根據布林條件重複執行。比較 while 與 for 的差異與互換性,說明在不確定迴圈次數時使用 while,而在已知次數時使用 for loop,並提醒避免無限迴圈與過度佔用 CPU。
理解 break 與 continue 在 Java 循環中的用法,並以實例展示打斷與跳過迴圈的執行,以及它們在 for 與 while 的作用。
學習在 Java GUI 中建立使用者圖形介面,透過 Java Frame 與 Panel 設定 content pane,並在畫面上透過 paint components 繪製 Hello World,使用 x、y 座標控制位置。
學會使用 Graphics G 的 drawLine、setColor、drawRect 與 fillRect,畫出線條與長方形。理解 drawLine 的四個輸入、顏色設定,以及視窗縮放時 getWidth/getHeight 的作用。
本課透過介面讓學生選擇加法表或乘法表、輸入大小,動態產生表格並依視窗調整,並以繪製矩形與顏色顯示計算內容。
理解方法重載的概念與方法簽名的定義:名稱、參數型別與順序共同決定唯一性。透過同名不同參數的範例,說明 Java 如何根據簽名自動選擇正確的方法,便於面試解釋與實作。
了解 reference data type 與非原始資料型態的概念,並比較 copy by value 與 copy by reference 的行為。示範陣列與方法呼叫,說明非原始型態會指向同一記憶體位置,改動會互相影響。
學會使用暫時變數 time out 在程式中互換兩個變數的值,先存 A 的值,再把 B 賦給 A,最後把暫存值賦回 B,並可套用於陣列元素互換與輸出。
本課程 以 max、reverse array 與 add up to 為核心 教授 陣列最大值、翻轉 與 等差求和 並 比較 公式解 與 for 迴圈 的 效能。
透過六至八題的實作,學會在 java 找出第一個大寫字母及其索引(若無回傳 -1),並掌握結尾比對與重複值檢查的思路。
本課以 Java 初階題目 1-2 為例,示範球從高 H 落地後每次彈回至原高度一半所經的總距離,以及用 Java 設計輸入年、月、日以計算今年的第幾天與判斷閏年的方法。
學習用字串反轉與前後比對判斷回文,掌握對稱檢驗與範例。實作水仙花數與三位數判斷,並以巢狀迴圈計算 S = A + AA + AAA… 的合成結果。
說明如何找出兩個陣列的交集,並比較簡單與較快的解法,強調交集概念源自集合且元素不重複。展示將 ArrayList 轉成 Array 的步驟,以及 right shift 將整個陣列往右移動 n 位的演算法與測試。
用費波納契數列的定義與性質,展示暴力做法與動態規劃在實作上的差異,以及與黃金比例的關聯。第九題以歐幾里得算法求最大公約數與最小公倍數,並示範 gcd 與 lcm 的乘積等於兩數相乘。
學會用 Java 畫正向與反向金字塔,透過 printStars 方法與 space、stars 參數控制每層的空格與星星。理解 n 層星星數量規則,並調整迴圈與起始值,完成畫圖流程。
本課以動態規劃與 LCS 概念,講解兩字串的最大共通子序列及解題思路。再證明比較排序的下界為 n log2 n - n,並推導最少比較次數。
透過把瓶子用二進位編碼,使用五隻老鼠在一週內找出毒瓶,百瓶需七位二進位表示。對百囚題,按奇數淘汰規律以二進位推演,100 人起始 64 號、1000 人起始 512 號,確定唯一倖存者的位置。
本課介紹 Java 物件導向設計,聚焦 package 的概念與用途。透過在 source 目錄建立小型資料夾,分組多個 class,實現模組化管理。
透過本課程,了解 java class 的概念、物件與實例化,以及 constructor 在建立物件時的初始化作用。學會使用 new 創造 circle 物件、為 radius 指定初始值,並認識 public 與 private、reference data type 與 non primitive data type 的差異。
透過 circle 類別 的 預設 建構子 與 自訂 建構子,理解 radius 的 初始化 與 預設 值,並 讓 使用者 指定 半徑。 再 以 getArea 計算 圓 面積, 展示 方法 重載、私有 與 公有 成員,以及 物件 導向 在 Java 的 實作。
說明 public 與 private 的差異,讓 circle 類別的 radius 從 public 變為 private,顯示不可直接修改,並用 get area 計算圓面積。
本課以 scope 為核心,說明欄位 fields 的整個 class 作用域與局部變數在方法、建構子與迴圈中的範圍,以及 public 與 private 的存取控制。
本課 介紹 Java 修飾符 的 基本 概念。理解 public、private、protected 與 default 的 存取 控制,以及 abstract、final、static 的 非存取 修飾符。
以封裝(cap solution)為核心,說明將資料與操作封裝在一起,形成私有成員,防止外部修改。透過 getter 與 setter 的範例,展示如何控制製造日期的合理範圍。
本講解 透過 繼承(inheritance) 展示 使用 父類別 people 讓 student 與 teacher 共用 屬性 與 行為,並 以 super 構造子 避免 重複 程式碼,同時 引入 parent class 與 child class 的 概念。
本課 介紹 Java 的 單一 繼承、extends 與 super 的 用法, 以及 方法 覆寫( override ), 透過 person、teacher、student 等 範例, 說明 如何 覆寫 父類 方法 與 繼承 結構。
本課講解多型:父類型的變數可指向子類物件,如 student 與 teacher;可用父類型陣列或 ArrayList 同時存放這些子類物件,並統一取得共通資料。
覆寫方法時,存取修飾只能增大,不能減小。若父類為 protected,子類覆寫時可讓存取變為 public 或 protected,不能變成 private。
學習 toString 方法 在 物件 顯示中的 作用, 了解 預設 與 覆寫 自訂 字串 的 差異。 使用 sheet 與 ship 類 範例, 回傳 座標 與 描述 作 為 自訂 輸出。
本課介紹 java switch 語句的用法與限制,並說明與 if 的互換。透過範例,說明 break、default 的作用與使用鍵盤控制移動的實作,同時提及整數型支援與鍵盤事件的要點。
本章解釋 Java 的空指針異常(null pointer exception),當對 null 物件呼叫欄位或方法時會發生。以 Person 類別的實作示例展示錯誤訊息與堆疊追蹤,教你在呼叫前先判斷是否為 null,避免此錯誤。
了解 concurrent modified array 錯誤的成因,當在遍歷陣列時同時修改會發生。學會先把要移除的元素暫存,結束迴圈後再一次移除,以避免迭代過程中修改陣列。
掌握 JVM 中的記憶體洩漏與垃圾收集器,如何自動回收無引用的物件,釋放 RAM。了解若物件不再被引用,垃圾收集器就會回收,讓記憶體給其他程式使用。
在 Java 中實作貪吃蛇遊戲,透過視窗與面板顯示蛇身節點,並以固定格子大小自訂 self size。說明蛇身循環更新、蛇頭前進與尾巴刪除,以及 snake 與 node 類別設計與 400×400 視窗繪製設定。
學會在蛇遊戲中實作穿越邊界的邏輯,讓蛇在超出視窗寬度時自動回到左側。透過 if 條件與 nx、self size、視窗寬度的運算,讓頭部顏色為綠色、身體顏色為橙色,提升辨識度。
說明蛇遊戲的 game over 邏輯與暫停計時器,顯示對話框讓玩家選擇是否重新開始,透過 reset 重設分數、蛇身與計時器等狀態。
設定與更新最高分,結束時顯示分數。實作檔案讀寫與錯誤處理,確保分數儲存與重置。
學會將 Java 遊戲打包成可執行的 jar,包納相依性並設定主類,以便在各平台執行。自動在桌面生成可執行檔並儲存分數檔案,確保 Windows、Mac、Linux 等平台皆能直接運行。
在 disaster view 中,建立並管理 sprite,並用 setPosition 與 getRelativePosition 設定位置,將 sprite 加入 elements,為摩西動作打好基礎。
本課以摩西射擊為核心,示範設計不能穿越的 sprite、迷宮式場景與十誡石頭收集結局,並教你用 WASD 鍵與 switch 事件控制射擊與移動,實作敵人追逐。
學會在 java 方法中透過 throw 拋出例外,並用 try-catch 與 stack trace 捕捉與顯示錯誤。也說明 source 與 lego argument exception 的用法,以及 radius 負值時的例外處理。
使用 Java 的 scanner 讀取檔案,建立 file object,處理 exception,並 計算 line count、word count、char count,模擬 wc 指令。
了解 wrapper class 將 primitive data type 轉成物件,讓它們能在集合中使用,例如 ArrayList 儲存整數。 wrapper class 的三大用途為在集合儲存物件、在多執行緒範例中以物件協作、以及與 Caroline Saturn 相關的資訊傳遞。
2026 Java 入門到精通課程從頭開始學習Java語法,內容包含基本語法、物件導向的程式架構、解決問題的邏輯思路、遇到問題狀況的處理、Debug技巧,建立扎實的Java必備知識。此外,也帶你從無到有開發完整的Java桌機遊戲,練習物件導向的程式設計,寫出商業與便捷功能,可連結資料庫、高可讀性、高維護性以及高功能性的程式碼。此課程會不斷更新以提供新的內容,根據學生的狀況與開發趨勢,不斷更新讓知識保持新鮮且豐富。
基礎課程包含:
1. Java Primitive Data type (Byte, Short, Long, Integer, Character, Boolean, Float, Double)
2. Reference Data Type (Class, Array, ArrayList, ...)
3. 物件導向語法, Fields, Scope, Static
4. 物件導向的三大要素:Polymorphism(多型), Inheritance(繼承), Encapsulation(封裝)
5. Abstract Class, Interface
6. Method Override, Method Overloading, Method Chaining三種比較與使用時機
7. KeyListener、MouseListener
8. toString(), equals() method 覆寫、switch statement撰寫
9. NullPointerException、Concurrent Modification Exception 問題處理
10. Memory Leak (記憶體洩漏)與Java Garbage Collector
除此之外,我們也會,加上Java常見應用,例如:
1. MySQL資料庫架設與連接
2. 預防SQL Injection攻擊資料庫
3. 網頁開發、HTTP
4. Java Stream語法
5. 多線程Java編寫(Multi-threading Programming)
6. Socket語法與資料傳輸,傳送基本數據、進階數據、文件資料
7. 學習面試題目解題,總題數超過40題
8. 使用Java Swing 製作貪食蛇遊戲
9. 製作出埃及記遊戲
10. Merge Sort, HashMap, Enum Class, JavaDoc, Short-Circuit Evaluation等進階內容
Java 是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向等特性,廣泛應用於企業級Web應用開發和各種行動應用開發。例如: Android Apps,數據中心和超級計算機,桌面應用程序,數據庫連接, 資料視覺化, 以及數據分析,都可以見到Java的應用。許多政府機關、醫療、 教育、 國防,以及的電子交易的系統也是用Java做成的!
Java 是非常受歡迎的程式語言,可以運用在各種領域,支援性非常強大!此外, Java是跨平台的程式語言,寫一份程式碼,就可以在多個平台上運行!現在許多開發工作與需要維護的程式碼,都需要擁有Java專業知識的工程師,因此,Java為目前業界非常熱門的程式開發語言。