Thinking in Java(1-3) 建立 Java 程式

Thinking in Java(1-3) 建立 Java 程式
Photo by orbtal media / Unsplash

在開始編寫 Java 程式之前,了解如何組織和管理程式碼是非常重要的。本章將介紹 Java 中的名稱可見性、如何運用其他組件、static 關鍵字的使用,以及如何編譯和執行你的第一個 Java 程式。

名稱可見性(Name Visibility)

解決命名衝突

在大型專案中,可能會遇到不同模組或類別中存在相同名稱的情況。為了解決這個問題,Java 採用了獨特的命名策略:

  • 域名命名法(Domain Naming Convention):Java 建議開發者使用自己的域名作為包(package)名稱的前綴,這樣可以保證名稱的唯一性。例如,假設你的公司域名是 `example.com`,你可以這樣命名包:
com.example.utility.fib

這種命名方式不僅避免了名稱衝突,還清晰地表示了包的組織結構。

運用其他的組件(Using Other Components)

使用 import 關鍵字

當你需要使用其他包中的類別時,必須顯式地導入這些類別。這可以通過 import 關鍵字來實現。例如:

import java.util.ArrayList;

如果一個包中有多個類別需要使用,可以使用通配符 * 一次性導入所有類別:

import java.util.*;

這樣,你就可以在程式中直接使用 ArrayListHashMap 等類別,而不需要每次都寫出完整的包路徑。

static 關鍵字

什麼是 static

通常,創建類別是為了描述該類別的外觀與行為。使用 new 關鍵字創建類別的物件後,才會分配空間並可以調用其方法。然而,有兩種情況無法通過這種方式解決:

  1. 為特定的範圍分配單一儲存空間:有時候,你只需要一份變數來存儲特定範圍內的資料,而不管創建多少個物件。
  2. 不依賴物件即可調用方法:某些方法不需要與物件的實例相關聯,可以直接調用。

為了滿足這些需求,Java 提供了 static 關鍵字。當某個成員被宣告為 static,它就不再與特定的類別實例相關聯,而是屬於類別本身。這意味著,即使沒有創建類別的物件,也可以訪問這些成員。

使用 static 的例子

class StaticTest {
  static int i = 47;
}

// 創建兩個 StaticTest 物件
StaticTest st1 = new StaticTest();
StaticTest st2 = new StaticTest();

// 兩個物件共享同一個 static 成員
System.out.println(st1.i); // 輸出 47
System.out.println(st2.i); // 輸出 47

// 修改 static 成員
StaticTest.i++;
System.out.println(StaticTest.i); // 輸出 48
System.out.println(st1.i); // 輸出 48
System.out.println(st2.i); // 輸出 48

在這個例子中,i 是一個 static 變數,所有 StaticTest 的物件都共享這個變數。無論通過哪個物件或類別本身修改 i,所有物件看到的值都是一致的。

靜態方法範例

class Incrementable {
  static void increment() { StaticTest.i++; }
}

Incrementable.increment(); // 靜態方法可以直接通過類別調用

Incrementable sf = new Incrementable();
sf.increment(); // 也可以通過物件調用,但仍然修改同一個 static 變數

執行第一個 Java 程式

現在,我們將通過一個簡單的範例來了解如何編譯和運行 Java 程式。

範例程式碼

import java.util.*;

public class HelloDate {
  public static void main(String[] args) {
    System.out.println("Hello. it's: ");
    System.out.println(new Date());
  }
}

程式說明

  • 類別命名與檔案名稱:如果你要建立一個獨立運行的程式,檔案中必須包含一個與檔案同名的類別。例如,上面的程式必須保存在 HelloDate.java 檔案中。
  • main 方法:這個類別必須包含一個 main 方法,具體簽名為 public static void main(String[] args)。這個方法是 Java 程式的入口點,負責啟動程式執行。
    • public:表示這個方法是公開的,可以被外部調用。
    • static:表示這個方法是靜態的,不需要創建物件即可調用。
    • void:表示這個方法不會返回任何值。
    • String[] args:這是一個字串陣列,用於接收命令行參數。

編譯與運行

  1. 安裝 JDK 並設定環境變數:確保已安裝 Java 開發工具包(JDK),並將 javacjava 命令添加到系統的 PATH 中。
  2. 編譯程式:打開終端或命令提示字元,導航到 HelloDate.java 所在的目錄,然後運行:
javac HelloDate.java

如果編譯成功,將會生成一個 HelloDate.class 檔案。

  • 運行程式:在同一目錄下,運行:
java HelloDate

你將會看到如下輸出:

Hello. it's:
Wed Apr 30 14:55:02 UTC 2024
  1. 這表示你的 Java 程式已成功運行,並輸出了當前的日期和時間。

總結

建立和運行 Java 程式涉及多個步驟,包括理解名稱可見性、使用 import 關鍵字導入其他組件、運用 static 關鍵字來管理類別成員,以及掌握編譯與執行的基本流程。通過掌握這些基礎知識,你將能夠更加自信地開發和管理 Java 應用程式。

希望這篇文章能夠幫助你順利建立和運行你的第一個 Java 程式,並為後續更複雜的開發打下堅實的基礎。