1、類的聲明
類本身的聲明:對類的聲明來說,主要包括類的訪問權限聲明和非訪問修飾符的使用。對於一個普通的Java類(POJO)來說,主要的訪問權限修飾符只有兩個public和默認權限,內部類可以有private權限。非訪問修飾符主要包括abstract,final和strictfp.
(1) 這裡先討論非訪問修飾符,下面是基本的規則:
abstract:聲明一個類是抽象的。
final:聲明一個類是可以被繼承的。
strictfp:聲明一個類中所有的方法在處理浮點數時遵循IEEE754規則。
由上面的這些規則可以得出一個結論:一個類不可能既聲明為abstract的,又聲明為final的。抽象類的實質即為繼承它的類定義了一組行為准則,任何繼承它的類都必須實現抽象類所定義的抽象方法,抽象類不可以實例化,抽象類中可以不包含抽象方法,但是含有抽象方法的類一定要聲明為抽象類。
final類表示一個類似不能被繼承的。如果你不希望一個類的行為被改變,或者說該類的行為是整個系統的基礎,就跟數學中的數字一樣的話,就可以把這個類聲明為final的。
(2) 類的訪問權限修飾符:
首先需要弄清楚的是類的訪問包括哪些方面:
一個類中創建另一個類的實例; 一個類繼承自另一個類;一個類中的方法訪問另一個類的方法和變量。類的訪問權限聲明為public的,表示該類可以被任意的類訪問,當然,在其他類中訪問該類類的訪問權限為默認權限,則表示和該類處在同一個包下的類可以訪問它 ,此處注意以下比較容易忽視的地方:
源文件一:
package cert;
class test1 {}
源文件二:
package cert2;
import cert.test1;
public class test2 extends test1{}
這裡test2類會產生錯誤,因為test1是默認訪問權限,test2 使用繼承的方式訪問test1,由於這兩個類不在同一個包中,因此test2是無法看到test1 的。