「哈囉,我的年輕朋友。我希望你沒有忘記我是第 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 COMMENT ⎥
System.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 DECLARATION ⎥
String s = "Ho-ho-ho!"; ⎥
METHOD CALL ⎥
printTextMoreTimes(s, 3); ⎥
} ⎥
⎦
METHOD PARAMETERS ⎤
public static void printTextMoreTimes(String s, int count) ⎥ METHOD SIGNATURE
⎦
⎤
{ ⎥
LOOP ⎥
for (int i = 0; i < count; i++) ⎥
LOOP BODY ⎥ METHOD BODY/CODE
{ ⎥
System.out.println(s); ⎥
} ⎥
} ⎥
⎦
}
「嘿,你這樣一解釋完,簡直不能更清楚了。」
「很好!這就是我們要的。試著讓自己至少理解一些東西。時候到了,你就會完全明白了。我現在要去睡一會兒。其他人會繼續來訓練你喔。」
GO TO FULL VERSION