
現在我們把 Encrypt 類別放進 encryptor 資料夾中,也就是 encryptor 套件。假設 Encrypt.java 與 EncryptDemo.java 都在 _code 資料夾中

Encrypt.java 原始程式碼的第一行需要使用關鍵字 (keyword) package
package encryptor;
完整的 Encrypt 類別程式碼請參考 Encrypt.java 。
藉此標明 Encrypt 在 encryptor 套件中,然後編譯使用
javac -d . Encrypt.java
-d 是指令 javac 的旗標之一,表示依路徑編譯,後面需要接路徑名稱,我們用小數點 . 表示目前的目錄,也就是在 _code 資料夾之中。按下 return (Enter) 鍵,就會出現 encryptor 資料夾

此時, Encrypt.class 就會在 encryptor 資料夾中。
然後,我們的 EncryptDemo 類別調整如下
public class EncryptDemo {
public static void main(String[] args) {
System.out.println();
String s[] = {"There is no spoon.",
"It is all around us.",
"Free your mind.",
"Follow the white rabbit.",
"Choice. The problem is choice.",
"Action, reaction. Cause, effect.",
"Everything that has a beginning has an end.",
"Because I choose to."};
encryptor.Encrypt e = new encryptor.Encrypt();
String t = "";
for (int i = 0; i < 8; i++) {
t = e.toEncode(s[i]);
System.out.println(t);
t = e.toDecode(t);
System.out.println(t);
}
System.out.println();
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:EncryptDemo.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2011 年 4 月 */注意第 13 行
encryptor.Encrypt e = new encryptor.Encrypt();
這時候使用 Encrypt 類別,就得連用套件名稱 encryptor 。
編譯 EncryptDemo.java 的指令不需要額外的旗標
javac EncryptDemo.java
EncryptDemo.class 會出現在目前目錄,也就是 _code 資料夾之中

完整的編譯與執行,如下

為什麼要用套件呢?因為具有相同概念的類別,我們常常會取相同的菜市場名,例如我們設計圖形介面寫了個 Button 類別,但我們寫的 Button 還不夠用,然後找 API 中是否也有可以用的類別,結果發現 API 中也有 Button ,問題來了,我們同時使用自己寫的 Button 與 API 的 Button ,會造成名稱衝突,結果很有可能會是編譯器任挑一個 Button 給程式執行。
這就不是我們想要的執行結果,不是嗎?使用套件最大的好處是可以避免名稱衝突,因為使用套件裡的類別需要用全名,也就是帶有套件名稱用小數點接上類別名稱。我們再看一次 EncryptDemo 的第 13 行
encryptor.Encrypt e = new encryptor.Encrypt();
當然,也可以只用套件裡的類別名稱,這時候就得用另一個關鍵字 import 了!
| 中英文術語對照 | |
|---|---|
| 套件 | package |
| 類別 | class |
| 關鍵字 | keyword |
您可以繼續參考
軟體開發
相關目錄
回 Java 入門指南
回 Java 教材目錄
回首頁
參考資料
The JavaTM Tutorials: Getting Started
The JavaTM Tutorials: Learning the Java Language
The JavaTM Tutorials: Essential Classes
The Java Language Specification, Third Edition
本文於 2013 年 1 月訂正
沒有留言:
張貼留言