一、源文件的編寫
Java是完全面向對象的語言,所以Java的所有操作都是基於類(class)完成的。Java中所有程序的代碼都需要放在一個類中,類用關鍵字class聲明,在class之前可以添加一些修飾符,Java應用程序的源文件由若干個書寫形式相互獨立的類組成。
1.例子:
// HelloDate.java import java.util.Date; //引入 java.util 包中的Date類 public class HelloDate{ /* * 該程序的目的是:輸出當前系統的時間 */ public static void main(String[] args){ System.out.print("Hell,it's"); System.out.println(new Date()); } }
(1)import語句的作用是引入一個額外的類或一個類包。注意,是“額外的”,因為有一個類包是被自動引入到每一個Java程序文件中的,就是 java.lang 包。
import java .util.Date 的作用是引入 java.util 包中的Date類。
如果不想一個一個地引入同一個包中的多個類,就可以用“*”來代表這個包中的所有類,如 import java.util.* 。
(2)類用關鍵字class聲明,類名必須與文件名稱相同。前面的關鍵字public表示這是一個公共類,可以被外界訪問。
(3)class HelloDate 稱為類聲明,之後的第一個大括號和最後一個大括號以及他們之間的內容叫類體。
(4)至少有一個名稱與主文件相同的類,且這個類中必須含有一個main()函數,其形式必須如下:
public static void main(String[] args){ ... //程序代碼 }
其中,關鍵字public表示這是一個對外公開的函數,傳入 main() 的參數,是一個 String對象數組。
(5)這個程序並未使用args,但Java編譯器要求必須要這樣聲明main方法,因為args被用來存儲“命令行參數”。
(6)Java允許一個程序的多個類中可以有多個main方法。不過,如果某個程序擁有多個類,僅有命令行所調用的class的main()會被喚醒——這個main方法必須是public,其所屬類則無所謂是否為public。(可以這麼理解:public static void main(String[] args) 這句代碼為程序的入口、開始)
System.out.println(new Date());
(7)System.out.println 的作用是向屏幕上輸出一條語句並換行。這裡傳入的參數是Date類的一個對象,對象用 new 操作方法創建。
(8)“為什麼輸出的結果不是像這樣‘java.util.Date@de6ced’是一個對象的地址(引用),而是一個字符串呢?”是因為Java類庫中的每個非基本類型的對象都具備一個 toString()方法,當編譯器希望得到一個String,而手上卻只有那些對象的情況下,這個函數便會被調用。如果希望自己編寫的類也能具備這種行為,只要為它編寫一個 toString方法即可。
(9)這個語句執行完成以後,這個對象便不會再被使用而變成了垃圾(garbage)。
2.Java之中有一種所謂的“垃圾回收機制(Garbage Collection)”,它會逐一監視所有通過 new 產生的對象,並在這些對象不再引用時釋放這個對象所占據的內存空間,所以完全不必擔心因垃圾過多而造成“內存洩漏(Memory Leak)”。
3.注意事項:
(1)Java是嚴格區分大小寫的。
(2)Java程序中一句連續的字符串不能分開在兩行中寫。
(3)每行語句都以分號“;”表示結尾。
二、源文件的命名規則
1.Java源文件的命名規則:
(1)如果源文件中有多個類,那麼最多只能有一個類為public類。
(2)如果有一個類聲明為public類,那麼源文件的名字必須與這個類的名字完全相同,並且擴展名是 .java 。
(3)如果源文件沒有public類,那麼源文件的名字只要與某一個類的名字相同,並且擴展名是 .java 即可。
2.Java中不成文的規定:
(1)Java類的名稱通常以大寫字母開頭。如果類名由多個單詞組成,則每個單詞的首字母均應為大寫,如 DateTest 。如果類名稱中包含單詞縮寫,則這個縮寫詞的每個字母均應為大寫,如 XMLExample。
(2)方法的名稱的第一個單詞應該以小寫字母開頭,後面的單詞以大寫字母開頭,如 getName 。構造函數除外。
(3)常量的名稱應該都使用大寫字母,並且能表示出該常量的完整含義。如果一個常量名由多個單詞組成 ,則用下劃線進行分隔,如 MAX_SIZE 。
3.良好的編程習慣:
(1)注意縮進。程序塊采用縮進風格編寫,不允許把多個短句寫在一行中,即一行只寫一條語句。
(2)注重注釋。一般情況下,源程序的有效代碼量應在10%-20%之間,注釋應與其描述的代碼相近。對代碼的注釋應放在其上方或右方(對單條語句的注釋)相鄰的位置,不可放在下方。另外,在實際項目開發中,在修改代碼後,一定要相應地修改注釋的內容,保持代碼和注釋的同步。
(3)標識符命名。標識符的命名要力求做到見名知意。同時使用完整的單詞或大家可以理解的縮寫,避免使人產生誤會。對變量的命名,切忌采用單個字符。
4.關鍵字和標識符:
(1)關鍵字又稱為保留字。在程序中具有特定的含義,Java預定義的標識符,而用戶自定義的標識符不能與關鍵字重名。
(2)標識符就是表示程序中的事物(或對象)的名字。Java中的包、類、方法、參數和變量等的名字都是標識符。
Java語言規定標識符只能由字母(大小寫)、數字(0~9)、下劃線(_)和美元符號($)這4種字符組成,且第1個字符不能是數字。當然還有,用戶自定義的標識符不能和關鍵字重名。
需要注意的是,Java是大小寫敏感的語言,class和Class、System和system分別代表完全不同的符號。
三、注釋與內嵌式文檔
1.注釋(Comment)是對代碼功能和用途的說明。在程序中編寫適當的注釋,將使程序代碼更容易閱讀,增強代碼的可維護性。
Java提供以下三種注釋風格:
(1)單行注釋。這種注釋風格源於C++,用於單行注釋,以 // 開頭,直至行末。
// 這是單行注釋
(2)多行注釋。這種注釋風格最初為C所使用,C++也沿用了這種風格。以 /* 開頭,後接的注釋內容可以跨越多行,最後以 */ 結尾。
/*多行注釋, 它可以跨越多行*/
(3)文檔注釋。文檔注釋以 /** 開頭,後接的注釋內容也可以跨越多行,並以 */ 結尾。部分程序員喜歡在多行中以 * 作為每行開頭,所以通常可以看到這樣的寫法:
/** *這是文檔注釋 *可以通過調用 javadoc 命令生成HTML說明文檔 */
2.內嵌式文檔就是文檔和代碼在同一個文件中。文檔被特殊的注釋語法標記出來,再通過一個工具,將這些注釋文檔從中提取出來。
javadoc就是用來將內嵌式文檔提取出來的工具,在JDK安裝目錄的bin目錄下可以找到這個工具。用這個工具不但能提取出由特殊標記所標識出的信息,還會提取出這些信息所屬的類名和函數名等信息。即一份標准的說明文檔。
javadoc的輸出結果是HTML文檔,通過Web浏覽器便可以閱讀。javadoc還可以將用戶所預設的HTML命令加入到它所產生的文檔中,這樣用戶就可以根據自己的想法對即將生成的文檔進行美化。