一. Package
在一個項目中,不可以有相同的兩個包名
package語句必須是文件中除注釋外第一句程序代碼,否則不能通過編譯。
二. Java訪問權限概述
類成員:
對于一個類,其成員(包括成員變量和成員方法)能否被其他類所訪問,取決于該成員的修飾詞。
在Java中,類成員的訪問權限修飾詞有四個:
private,
無(包訪問權限),
protected ,
public,
其權限控制如下表所示:
public :被public修飾的類成員能被所有的類直接訪問;
private:被public修飾的類成員只能在定義它的類中被訪問,其他類都訪問不到。
包訪問權限:包訪問權限就是Java中的默認的權限,具有包訪問權限的類成員只能被同一包中的類訪問。
protected :?1.基類的protected成員是包內可見的,并且對子類可見;2.若子類與基類不在同一包中,那么在子類中,子類實例可以訪問其從基類繼承而來的protected方法,而不能訪問基類實例的protected方法。
類:
對于非內部類而言,類的訪問權限修飾詞僅有public和包訪問權限兩種(內部類可以是private或protected的)
三.其他的修飾符
static:修飾變量和內部類(不能修飾常規類),其中所修飾變量稱為類變量或靜態變量。靜態變量是和類層次的變量,每個實例共享這個靜態變量,在類加載時初始化。
final:被聲明為final的變量必須在聲明時給定初值(也可以延遲到構造器中賦值),而且被修飾的變量不能修改值。常量為值不能被修改,對象為引用不能被修改引用所指向的內容可以被修改。當修飾類時,該類不能派生出子類;修飾方法時,該方法不能被子類覆蓋。
abstract:修飾類和方法。當修飾類時,該類不能創建對象;修飾方法時,為抽象方法。類只要有一個abstract方法,類就必須定義為abstract,但abstract類不一定非要有abstract方法不可。
四.類加載及初始化順序
必須指出類加載及初始化順序為:
父類靜態代碼塊->子類靜態代碼塊->父類非靜態代碼塊->父類構造函數->子類非靜態代碼塊->子類構造函數