Java教學入門必讀!Java語法、實例一次看,完整學習路線懶人包
想學一門實用又長青的程式語言嗎?那麼 Java 會是一筆穩賺不賠的投資!不僅擁有穩定的發展基礎,Java 語法也是清晰、有邏輯,適合初學者建立觀念,坊間還有許多 Java 教學、自學資源,即使無任何程式經驗,也有許多機會入門。本篇將從 Java 是什麼說起,介紹常見語法、物件導向觀念等等,讓你在學習路上少走彎路,更好地掌握這個程式語言。
Java 教學之前:先認識 Java 是什麼!
Java 是什麼?Java 是如今被全球廣泛使用的程式語言,最早於 1995 年由 Sun Microsystems 推出,目前由 Oracle 公司負責維護,其核心理念是撰寫好一次程式,就可以在不同電腦系統(如 Windows、macOS、Linux)上執行。以下是 Java 的 2 大特色:
Java 特色 #1 跨平台
Java 語法能在不同平台上無縫執行,背後的關鍵就在於 JVM(Java Virtual Machine,Java 虛擬機),它就像一位「翻譯官」,當 Java 程式碼被編譯、轉換成中間碼(Bytecode)後,能將中間碼解譯為各個作業系統能理解的語言,大幅降低系統開發和維護的成本。
Java 特色 #2 物件導向
物件導向(Object-Oriented Programming,簡稱 OOP)是一種常見的程式設計方式,它的概念是把現實世界的事物轉換成「物件」(Object),每個物件都有自己的特徵與功能,透過彼此之間的互動,組合成一個完整的系統。在 Java 中,物件通常包含下列元素:
- 屬性(Attributes / Properties):用來描述物件的狀態或特徵,如:人名、年齡。
- 方法(Methods / Functions):定義物件可以執行的動作,如:人可以走路、說話。
而物件導向的設計,還具備以下 4 個特性:
- 封裝(Encapsulation):把物件的內部資料隱藏起來,只開放透過特定方法存取,藉此提升安全與穩定性。
- 繼承(Inheritance):子類別可以「繼承」父類別的屬性與方法,減少重複程式碼、提升開發效率,後面段落會詳細說明。
- 抽象(Abstraction):將共通的行為或特徵抽出來,透過抽象類別(abstract class)或介面(interface)定義,作為統一的規範。
- 多型(Polymorphism):同樣的方法名稱,在不同物件中可以有不同的實作方式,以提升系統的彈性與可擴充性。
此外,Java 語法設計相對簡潔、邏輯清楚,適合初學者學習,比如大小寫有別、每行結尾須加分號、類別和方法的程式區塊須使用 {} 包住等,都很適合成為新手培養概念的語言。
Java 教學入門:安裝與程式範例
Java 教學的第一步,就是幫電腦準備好工具:
安裝 JDK
JDK(Java Development Kit)就像是 Java 的工具箱,有編譯器跟執行程式的必備工具,想讓程式跑起來,就必須安裝 JDK。作法很簡單,只需要於
Oracle 官網下載最新版的 JDK,並選擇和自己電腦系統對應的版本即可。
而安裝完成後,需要設定環境變數,以便後續能在任何資料夾中執行。
- JAVA_HOME:指定 JDK 的安裝根目錄位置
- PATH:加入 %JAVA_HOME%\bin(Windows系統)或 $JAVA_HOME/bin(Linux、macOS系統)
最後可開啟終端機,輸入 java -version 和 javac -version 驗證是否安裝成功。
選擇 IDE
安裝好 JDK,還需要挑選 IDE(Integrated Development Environment,整合開發環境),它能自動補齊程式碼、提醒錯誤,讓開發過程順暢很多。常見的 IDE 軟體有:
- VS Code 外掛:如果平時習慣用 VS Code,可以透過安裝 Java Extension Pack 獲得程式碼自動補全、除錯等基本功能,適合初學者快速上手。
- Eclipse:免費且功能佳,適合企業級專案使用,在 Spring 等框架的開發上,有豐富的插件支援。
- IntelliJ IDEA:專業開發者愛用,具有智慧提示、自動補完功能,不過商業版需要付費,但若只是入門學習需求,社群版(Community Edition)已足夠負擔。
當 JDK 和 IDE 都準備好,就能試著動手寫下 Java 程式了。以下是簡單的習題:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
開始執行後,如果終端機顯示「Hello, World!」,代表環境安裝順利完成!
Java 語法:資料型態、變數與運算子
就像學語言要先會認字和文法,動工寫程式前,必須先掌握 Java 語法,而 Java 的語法重點在於資料型態、變數、運算子三者:
Java 資料型態
資料型態(Data Types)就像是不同形狀、不同大小的容器,用來放置各種資料。Java 的資料型態大致分為以下 2 大類:
- 基本型態(Primitive Types):直接存放資料,就像把數字或字元直接丟進盒子裡。例如: int age = 30 就像是把 30 裝進一個名為 age 的盒子裡。
- 參考型態(Reference Types):放的不是資料本身,而是「資料的地址」。例如: String name = "Eric" 變數 name 其實是指向記憶體中存放 "Eric" 這個字串的位置。
實際寫程式時,每一大類都有不同的「型態」可選擇,它們決定了可以放進去的資料種類與大小,以下就列舉幾個常見的型態:
| 型態 |
資料 |
範例 |
| int |
整數 |
int age = 30; |
| long |
長整數 |
long population = 7000000000L; |
| float |
單精度浮點數 |
float pi = 3.14f; |
| double |
雙精度浮點數 |
double e = 2.718; |
| boolean |
布林值(真或假) |
boolean isJavaFun = true; |
| char |
單一字元 |
char grade = 'A'; |
| String |
字串(參考型態) |
String name = "Cat"; |
Java 變數
變數(Variables)就像是貼了標籤的盒子,可以裝資料,之後也能重新指定新的值。在 Java 裡,還可以搭配存取修飾子(Access Modifiers),來決定「誰能打開這個盒子」。
- private:只有指定的類別(class)能存取,就像房間的日記本,只有你自己能看。
- public:任何地方都能存取,就像大廳裡的白板,大家都能看到、寫東西上去。
簡單範例如下:
public class Person {
private int age; // 私有變數,只能在類別內存取
public String name; // 公開變數,可被外部存取
}
Java 運算子
運算子(Operators)就像是手上的工具,主要用來對變數做各種操作。常見有以下幾種:
- 算術運算子:+, -, *, /, %,可用來進行基本的數學運算。
- 比較運算子:==, !=, >, <, >=, <=,用來比較兩個值的大小,或者是否相等,結果會是 true 或 false。
- 邏輯運算子:&&, ||, !,用來組合多個判斷條件,決定是否通過。
- &&(AND):兩個條件都成立才放行。
- ||(OR):只要有一個條件成立就放行。
- !(NOT):把結果反過來。
- 賦值運算子:=, +=, -=, *=, /=, %=,用來指定或更新原本變數的值。
小補充!Java 套件、引入概念
Java 套件(Package)主要用來定義程式碼命名空間,可以把它想成程式的「分類方式」,確保它們不會亂成一團,引入(Import)則是把別人已經寫好的功能拿來使用。
Java 語法:流程控制、陣列與集合
寫程式不只是讓電腦跑一行接一行,還告訴電腦「如果符合某個條件,就做這件事」、「這件事要重複幾次」等等,而這時就會用到流程控制、陣列和集合:
Java 流程控制
常見有 if-else、迴圈、switch、break 與 continue:
【if-else 條件判斷】
if-else 意即「如果…就…否則…」,可應用在多種不同的情況。
int score = 85;
if(score >= 90) {
System.out.println("Excellent");
}
else if(score >= 60) {
System.out.println("Pass");
}
else {
System.out.println("Fail");
}
【for, while 迴圈】
當想要重複執行某個動作時,迴圈 for, while 可以讓你不用重複寫程式碼。
for(int i = 0; i < 5; i++) {
System.out.println(i);
}
- while 迴圈:適合不知道要執行多少次,只要條件成立就要繼續執行。
int j = 0;
while(j < 5) {
System.out.println(j);
j++;
}
【Switch 語法】
當需要判斷非數字時,可使用 switch 語法達到不同情況下,所需要的設定操作。
char grade = 'B';
switch(grade) {
case 'A': System.out.println("Excellent"); break;
case 'B': System.out.println("Good"); break;
default: System.out.println("Needs Improvement");
}
【break, continue 跳脫控制】
如果需要中途結束,或者指定跳過這次,可以使用 break, continue。
for(int i = 0; i < 5; i++) {
if(i == 3) continue; // 跳過 i==3
System.out.println(i);
}
Java 陣列
當需要儲存多筆資料時,陣列(Array)是最基本的工具,它能把資料排成一列,再用索引(index)取出。
【一維陣列】
一直排的一列資料。
int[] numbers = {1, 2, 3, 4, 5};
【二維陣列】
比較像表格,會有列、有行。
int[][] matrix = {{1,2},{3,4}};
但陣列有個限制,它的長度是固定的,一旦建立就不能改變,這在開發實務中常常不夠彈性,所以這時就可以使用 Java 集合框架(Collection Framework)來解決。
Java 集合
集合(Collection)類似一種「可變動大小的盒子」,比陣列(array)更靈活,可以隨時新增或刪除資料。Java 裡常用的就是 List(清單)和它的實作 ArrayList:
【List】
List 是一個「規則」,定義清單可以做哪些事,比如依照順序放東西(會記住先後次序),以及透過索引(index,從 0 開始)拿到指定的資料。
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
System.out.println(list.get(1)); // B
【ArrayList】
ArrayList(類別)是 List 的實作版本,是 Java 已經做好的清單工具,特性是存取快、插入和刪除較慢(因為需要移動元素)。
ArrayList<Integer> nums = new ArrayList<>();
nums.add(10);
nums.add(20);
System.out.println(nums.size()); // 2
Java 繼承概念與物件導向核心
Java 教學的重要一環就是搞懂何謂物件導向,也就是封裝、繼承、抽象、多型這四者:
Java 封裝
封裝就是把資料(屬性)和操作資料的程式(方法)包裝在同一個類別裡,並且透過存取修飾子如 public、private,控制是否可讓外部直接修改。這樣的好處是可以保護物件的內部細節,避免被亂改,也能讓程式更安全。
Java 繼承
繼承指的是子類別(Subclass)可直接使用父類別(Superclass)的屬性和方法,寫程式時不用每次都從零開始,並且降低程式碼重複性。以下是 Java 繼承的語法格式:
class 父類別 {
}
class 子類別 extends 父類別 {
}
【this / super】
- this:代表目前這個物件本身。
- super:代表父類別,可以呼叫父類別的建構子或方法。
class Parent {
String name = "父類別";
Parent() { System.out.println("Parent 建構子"); }
}
class Child extends Parent {
String name = "子類別";
Child() {
super(); // 呼叫父類別建構子
System.out.println("Child 建構子");
}
void printNames() {
System.out.println(this.name); // 子類別
System.out.println(super.name); // 父類別
}
}
【static / final】
- static:屬於類別本身,不需要建立物件即可使用。
- final:代表「不能再被改變」,依照不同情況有不同效果。
- final class → 這個類別無法被繼承
- final method → 這個類別無法被覆寫
- final variable → 變數變成常數,數值不可改
final class A {} // 無法繼承
class B {
final void show() {} // 無法覆寫
}
Java 抽象
抽象就是先定義「規則」或「樣板」,再由子類別補上細節,這樣能讓不同子類別依照相同規則去實作,程式會更有一致性也更好後續擴充。在 Java 中,抽象透過抽象類別(abstract class)或介面(interface)來實現,子類別必須實作抽象方法,程式才能執行。
Java 多型
多型指的是同一個方法名稱,根據物件的不同而有不同的行為,能讓程式更有彈性。以下是語法格式:
父類別 參考 = new 子類別();
參考.方法(); // 實際執行子類別的方法
簡單範例如下:
Animal a1 = new Dog();
Animal a2 = new Cat();
a1.makeSound(); // 汪汪!
a2.makeSound(); // 喵喵!
【覆寫】
要實現多型,最常用的方式就是覆寫(Override)。覆寫是子類別重新定義父類別的方法,相同的方法名稱,會因為物件不同而產生不一樣的結果。它的語法格式如下:
@Override
public void 方法名稱(參數) {
}
以下提供簡單範例:
class Animal {
void makeSound() {
System.out.println("動物叫聲");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("汪汪!");
}
}
Java 用途有哪些?跟 JavaScript 差在哪?一次解答
Q:Java 的用途有哪些?
Java 用途廣泛,舉凡銀行、電商、ERP 等企業後端系統,或是 Android App 開發、大數據處理、雲端服務(如 Hadoop、Spark 等框架),甚至是物聯網,都常常用到 Java。
Q:Java 跟 JavaScript 差在哪?
Java 和 JavaScript 名稱相近,但二者其實天差地別。Java 需要先編譯才能跑程式,主要用在後端系統、App。JavaScript 則是寫好就能在瀏覽器跑,主要用在網頁互動,若用一句話總結,Java 偏向後端,JavaScript 則是偏向前端。
Q:學 Java 可以做什麼工作?
- 後端工程師:負責設計與開發企業系統骨幹,包含處理 API、與資料庫互動等。
- 全端工程師:掌握前、後端技術,能獨立完成網站或程式開發,以及整體功能維護。
- Android App 開發:使用 Java 開發手機 App。
- 大數據工程師:利用 Java 處理、分析海量資料,是未來的一大趨勢。
- 系統架構師:累積足夠經驗後,可以晉升為系統架構師,負責規劃整個大型系統。
Q:Java 自學要多久時間?
Java 自學時間取決於想學到什麼程度,通常大約 2~3 個月就能熟悉入門語法和基本物件導向,若想深入框架與專案開發,可能得花 6 個月左右學習框架、專案開發,如果要到高階程度,至少需要 1 年以上的時間,才有辦法參與或深入大型系統的設計。
Java 自學推薦:巨匠電腦 Java 開發課程!
Java 工程師一直是求職市場的高需求人才,無論是金融業、科技業,還是大型企業系統開發,幾乎都少不了 Java 的身影。也因此精通 Java 不僅能帶來更多機會,還能提高競爭力。
雖然網路上 Java 教學資源很多,初學者往往還是會卡關,像是環境配置不順利(JDK 安裝、IDE 設定等)、語法複雜(資料型態、物件導向等),或者缺乏實戰經驗,常常學到一半就失去方向,或是找不到人解惑。
如果想要更有效率地學好 Java,同時確保能真正上手,
巨匠電腦的
Java 程式開發課程就是你的好選擇!沒有基礎的小白,可從
Java 基礎程式設計入門,接著進到
Java OCP JP 程式設計認證、
Java Web全端開發實務班,最後是實戰的
Java 企業框架實務,由專業講師帶領你建立完整知識體系,把學習到的知識真正應用出來,打造專屬自己的一套應用程式,累積就業所需的作品與硬實力。
現在就行動,把握學習的最佳時機,別讓高薪職缺從你身邊溜走!
免費學習資源不漏接
