所謂的包就是為每個
Java
類提供一個命名空間。處于同一個包中的兩個
Java
類可以不需要其他任何語句就相互尋找。類有四種類型,
abstract
、
final
、
friendly
和
public
,其中后兩種類型和包的定義相關,其中
public
類型的類可以為任何對象所存取,而
friendly
類型的類只有在相同包中的對象才能使用。成員變量或成員方法的
public
和
friendly
類型限制和類的類型限制相同,而protected
類型的方法或變量可以被其同包中的類,子類等訪問,與friendly
相似(好像是沒有區別的)。
private
類型的方法或變量只可以被自己類的方法所訪問。
另外,如果程序位于兩個包中,如果之間需要相互調用,則需要使用
import
語句將需要的類包括進來。注意,這種包括,只是保證可以進行范圍以內的訪問。即如果一個類要訪問另外一個包中的公共類,則需要將那個公共類包括進來,但是還是不可以訪問那個公共類中的
protected
、
private
和
friendly
類型的變量或是方法。
static
修飾的成員變量叫做類變量,它被所有對象共享,對所有的實例只使用一個備份。同樣,有
static
修飾的成員方法叫做類方法。類方法不能使用該方法所在類的實例變量和實例方法,因為類方法也許會在實例化該類之前被調用。另外類方法中不能使用
this
關鍵字,因為
this
是代表調用該方法的對象,類方法不需要對象來調用,所以
this
不應該存在于類方法內部。
final
用于修飾類的時候,說明類是最終類,不能被其他類繼承,也不能進行實例化(這是教科書上一句錯誤的話);
final
修飾的變量是最終變量,即常量;用
final
修飾的方法不能再被子類重寫。
main
方法是程序的入口點,它沒有返回參數,而入口參數就是應用程序運行時在命令行給出的參數。
所謂內部類,就是在某個類的內部嵌套定義一個類,內部類可以在一個語句塊的內部定義,也可以是其他類的成員,還可以在一個表達式內部匿名定義。內部類的特性有:
11
)內部類可以聲明為
private
或
protected
;
2
)內部類可以定義為
abstract
;
3
)內部類不能與包含它的類名相同;
4
)內部類可以使用包含它的類的成員變量,包括靜態和實例成員變量,也可以使用內部類所在方法的局部變量;
5
)內部類如果被聲明為
static
,就變成了頂層類,這樣就不能再使用局部變量,也只有內部類是頂層類時,才可以聲明
static
成員。通過使用內部類雖然可以大大節省編譯后產生的字節碼文件的大小(為何可以以后再查詢),但是會造成程序結構上的不清楚。