Java源文件的聲明規則<br />當在一個源文件中定義多個類,並且還有import語句和package語句時,要特別注意這些規則:
一個源文件中只能有一個public類。
一個源文件可以有多個非public類。
源文件的名稱應該和public類的類名保持一致。例如:源文件中public類的類名是Employee,那麼源文件應該命名為Employee.java。
如果一個類定義在某個包中,那麼package語句應該在源文件的首行。
如果源文件包含import語句,那麼應該放在package語句和類定義之間。如果沒有package語句,那麼import語句應該在源文件中最前面。
import語句和package語句對源文件中定義的所有類都有效。在同一源文件中,不能給不同的類不同的包聲明。
類有若干種訪問級別,並且類也分不同的類型:抽像類和final類等。這些將在後續章節介紹。
除了上面提到的幾種類型,Java還有一些特殊的類,如內部類、匿名類。
一個簡單的例子
在該例子中,我們創建兩個類Employee 和EmployeeTest,分別放在包p1 和p2 中。
Employee類有四個成員變量,分別是name、age、designation和salary。該類顯式聲明了一個構造方法,該方法只有一個參數。
在Eclipse中,創建一個包,命名為p1,在該包中創建一個類,命名為Employee,將下面的代碼複製到源文件中:
package p1;public class Employee{ String name; int age; String designation; double salary; // Employee 類的構造方法public Employee(String name){ this.name = name; } // 設置age的值public void empAge( int empAge){ age = empAge; } // 設置designation的值public void empDesignation(String empDesig){ designation = empDesig; } // 設置salary的值public void empSalary(double empSalary){ salary = empSalary; } // 輸出信息public void printEmployee(){ System.out.println("Name:"+ name ); System.out.println("Age:" + age ); System.out.println("Designation:" + designation ); System .out.println("Salary:" + salary); }}程序都是從main方法開始執行。為了能運行這個程序,必須包含main方法並且創建一個對象。
下面給出EmployeeTest類,該類創建兩個Employee對象,並調用方法設置變量的值。
在Eclipse中再創建一個包,命名為p2,在該包中創建一個類,命名為EmployeeTest,將下面的代碼複製到源文件中:
package p2;import p1.*;public class EmployeeTest{ public static void main(String args[]){ // 創建兩個對象Employee empOne = new Employee("James Smith"); Employee empTwo = new Employee("Mary Anne "); // 調用這兩個對象的成員方法empOne.empAge(26); empOne.empDesignation("Senior Software Engineer"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21) ; empTwo.empDesignation("Software Engineer"); empTwo.empSalary(500); empTwo.printEmployee(); }}編譯並運行EmployeeTest 類,可以看到如下的輸出結果:
Name:James SmithAge:26Designation:Senior Software EngineerSalary:1000.0Name:Mary AnneAge:21Designation:Software EngineerSalary:500.0
強調一下編程風格<br />代碼風格雖然不影響程序的運行,但對程序的可讀性卻非常重要。自己編寫的程序要讓別人看懂,首先在排版方面要非常注意。
其實每個人的編程風格、每個軟件開發公司的編程風格都不一樣。一個人編寫的程序代碼,就應該能讓別人看懂,甚至是過了很長時間,自己也要看的懂,否則這個程序就成了一個死程序。
編程風格是指編程時的格式,讓程序看上去就很有層次感。下面通過一些例子,說明編程風格的重要性:
public class math{ public static void main(String[] args){ int x=12; double y=12.3d; void print(){ char a='a'; System.out.println(a); } System. out.println(x+y); }}上面程序段的整個排版看起來是否很舒服,並且層次感很強?是否一眼看上去就知道整個程序架構?這裡的關鍵在於縮進,縮進也可以稱為跳格。
上面的代碼採用的縮進:"public class math" 是頂格的,接著mian() 方法縮進4 個空格,在mian() 方法裡面的代碼一律縮進8 個空格,而print() 方法的主體代碼又多縮進4 個空格。這樣整個程序的所屬關係就很明顯了。 mian() 方法屬於math 類,其餘的都屬於main() 方法,而在print() 方法內的代碼段又屬於此方法。規律就是空格多的代碼從屬於空格少的代碼。
我推薦大家使用tab 鍵縮進,大部分編輯器(如Eclipse)都支持自定義tab 鍵的空格數,一般為4 個空格。
除了縮進,空行也是必要的,先看下列程序代碼:
public class math{ public static void main(String[] args){ int x=12; int y=23; void print(){ // ................. } void view(){ // .................... } }}上面的程序段,在print() 方法與view() 方法之間有空行,用來區分不同的模塊。 print() 方法與view() 方法所完成的功能不一樣,所以使用空行將它們分開,這樣更增加了程序的可讀性。
另外,需要注意的是方法或屬性的命名。這些名字應該有含義,最好有規律,不要只使用"a"、"b"這種通用變量,適當可以根據變量或函數的功能為其命名。上面的"print",其他程序員一看就知道這個方法,是有關打印或輸出的函數。再如:變量名"name",一看就知道是有關名字的變量。所以,一定要命名的有意義,否則程序的可讀性不強。
還有一點是有關註釋的。在每個方法的方法名旁邊,應該添加一些註釋,同時在一段程序完成之後,也要對程序的功能及如何操作,做個簡單的描述。
只要做到以上幾點,這個程序他人來讀就很容易。即使自己在很長時間後,再來讀程序也會一目了然。