「哈囉,我的年輕朋友。我希望你沒有忘記我是第 16 代官僚。如果我沒有對我的知識進行系統化,我不會達到今日的成就。我可是滿懷有用資訊的。接下來我會幫助你進行一些任務。首先,讓我告訴你什麼是一隻典型的 Java 程式。」

「好,我在聽。」

「事實一。一支 Java 程式是由類別組成的。每個類別都儲存為各別檔案,檔案的名稱和類別名稱相同。副檔名是 java。」

「所以,一支程式是由一系列副檔名是『java』的檔案構成,然後每個檔案裡只包含一個類別的代碼,這樣對嗎?」

「完全正確,阿米哥。如果檔案的名字是 MyCat.java,那裡面就是包含 MyCat 類別。」

「事實二。如果我們的類別檔案數量太多,我們會把它們分組到資料夾和子資料夾裡。另外,類別則是分組成套件 (package) 和子套件。套件和子套件的名稱必須在類別代碼中指出,並且必須與磁碟上的資料夾和子資料夾的名稱相同。

「因此,一方面是檔案要存在資料夾裡,另一方面則是類別要存在套件中。類別名稱也必須和描述類別的檔案名稱相符。套件名稱則是和儲存類別的資料夾名稱相符。」

「你可以說得再詳細一點嗎?」

「巢狀套件 (nested package) 的名稱由半形句點分隔,幾乎和 URL 連結一樣。」

「換句話說,假設我們有個類別叫 Cat,這個類別被儲存在 animals.pets 套件裡。這個意思是說:

硬碟上有個資料夾儲存所有的專案檔案(我們先把這個資料夾叫做 src)。

那個資料夾會包含一個叫 animals 的資料夾,而那裡面又有一個 pets 子資料夾。

這個 pets 資料夾包含 Cat.java 檔案,檔案裡面則是包含 Cat 類別的代碼。」

「我不是很確定我是不是懂了。」

「你看喔。類別和套件的結構和硬碟上資料夾和檔案的結構一模一樣,就像照鏡子一樣。如果我們有一個叫做 House.java 的檔案,儲存在 src/com/houses 資料夾裡,那就會有一個叫 House 的類別,儲存在 com.houses 套件裡。」

「懂了。」

「看來你學得很快嘛。你看螢幕。這是一個小型類別的代碼。我把所有重要的部分都標出來了:」

PACKAGE NAME
package com.futujava.lesson2;
import java.io.IOException;
/**
 * User: General
 * Date: 12/21/12
 * Time: 11:59
 */
             CLASS NAME
public class Task1
{private static String TEXT = "Kiss my metal rear actuator";CLASS VARIABLE
                                                              ⎦
                                                                ⎤
   public static void main(String[] args) throws IOException{SCREEN OUTPUT                    SINGLE-LINE COMMENTSystem.out.println(TEXT); //Display a single string       ⎥
        MULTILINE COMMENT/*                                                        ⎥
        This is a multiline comment.                            ⎥
        The code below will display three identical strings.    ⎥ main() METHOD
       */VARIABLE DECLARATIONString s = "Ho-ho-ho!";METHOD CALLprintTextMoreTimes(s, 3);}                                                            ⎥
                                                                ⎦
                                          METHOD PARAMETERSpublic static void printTextMoreTimes(String s, int count)METHOD SIGNATURE
                                                              ⎦
                                                                ⎤
   {LOOPfor (int i = 0; i < count; i++)LOOP BODYMETHOD BODY/CODE
      {System.out.println(s);}}                                                            ⎥
                                                                ⎦
}

「嘿,你這樣一解釋完,簡直不能更清楚了。」

「很好!這就是我們要的。試著讓自己至少理解一些東西。時候到了,你就會完全明白了。我現在要去睡一會兒。其他人會繼續來訓練你喔。」