Thinking in Java(1-3) 建立 Java 程式
在開始編寫 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.*;
這樣,你就可以在程式中直接使用 ArrayList
、HashMap
等類別,而不需要每次都寫出完整的包路徑。
static
關鍵字
什麼是 static
通常,創建類別是為了描述該類別的外觀與行為。使用 new
關鍵字創建類別的物件後,才會分配空間並可以調用其方法。然而,有兩種情況無法通過這種方式解決:
- 為特定的範圍分配單一儲存空間:有時候,你只需要一份變數來存儲特定範圍內的資料,而不管創建多少個物件。
- 不依賴物件即可調用方法:某些方法不需要與物件的實例相關聯,可以直接調用。
為了滿足這些需求,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
:這是一個字串陣列,用於接收命令行參數。
編譯與運行
- 安裝 JDK 並設定環境變數:確保已安裝 Java 開發工具包(JDK),並將
javac
和java
命令添加到系統的 PATH 中。 - 編譯程式:打開終端或命令提示字元,導航到
HelloDate.java
所在的目錄,然後運行:
javac HelloDate.java
如果編譯成功,將會生成一個 HelloDate.class
檔案。
- 運行程式:在同一目錄下,運行:
java HelloDate
你將會看到如下輸出:
Hello. it's:
Wed Apr 30 14:55:02 UTC 2024
- 這表示你的 Java 程式已成功運行,並輸出了當前的日期和時間。
總結
建立和運行 Java 程式涉及多個步驟,包括理解名稱可見性、使用 import
關鍵字導入其他組件、運用 static
關鍵字來管理類別成員,以及掌握編譯與執行的基本流程。通過掌握這些基礎知識,你將能夠更加自信地開發和管理 Java 應用程式。
希望這篇文章能夠幫助你順利建立和運行你的第一個 Java 程式,並為後續更複雜的開發打下堅實的基礎。
Comments ()