1. 構造函數 1.1. 構造函數特征 與類相同名稱,不聲明返回值類型。 不能被static、final、synchronized、abstract、native修飾,不能有return語句。 1.2. 構造函數作用 創建對象,給對象進行初始化。 1.3. 構造函數分類 隱式無參構造器,顯示構造器。 ...
1. 構造函數
1.1. 構造函數特征
與類相同名稱,不聲明返回值類型。
不能被static、final、synchronized、abstract、native修飾,不能有return語句。
1.2. 構造函數作用
創建對象,給對象進行初始化。
1.3. 構造函數分類
隱式無參構造器,顯示構造器。
隱式無參構造器預設提供,無需顯式定義。
顯式構造器:定義一個或多個構造器(有參、無參)。
1.4. 註意事項
- Java中每個類至少有一個構造器。
- 預設構造器修飾符和所屬類一致。
- 一旦定義了顯式構造器,則不提供預設無參構造器。
- 一個類可以創建多個重載的構造器。
- 父類構造器不可被子類繼承。
1.5. 使用this調用本類構造器
this():調用本類無參構造函數。
this(參數類型 參數名...):調用本類有參構造函數。
註意:
① 使用this(...)必須放在構造函數首行。
② 使用this(...)調用本類其他方法,至少有一個構造方法沒用this(...)。
2. 包管理
2.1. package
關鍵字:package
告訴編譯器所在類屬於哪個包下。
語法: package 頂層包名.子層包名....
註:包的名稱全由小寫組成。
2.2. Import
關鍵字:import
告訴編譯器所在類所用類位於哪個包。
語法:import 包名.[子包名]...類名。
3. 數組
數組是多個相同類型數據的集合。引用元素可以為任意數據類型。
數組屬於引用類型,數組型數據為對象。數組中每個元素相當於該對象成員變數。
3.1. 一維數組
聲明:類型 var[]或類型[] var
3.2. 一維數組初始化
靜態初始化:定義數組的同時,為數組分配空間並賦值。例:
int a[]=new int[]{1,2,3}或int[] a={1,2,3} |
動態初始化:數組聲明且為數組元素分配空間,與賦值操作分開。例:
int a[]=new int[3]; a[0]=1; a[1]=2; a[2]=3; |
3.3. 數組引用
- 定義並實例化後才可引用數組元素。
- 引用方式:數組名[數組元素小標]。
- 數組都有一個屬性length指明數組長度,且一旦初始化後,長度不能被修改。
3.4. 二維數組
聲明:int[][] y,int[] y[],int y[][]
4. 可變參數
- 方法參數部分指定類型參數個數是可變的。
- 聲明方式:(參數名...參數名)
- 可變參數方法使用與數組是一致的。
- 方法的參數部分有可變參數,需放到形參最後。
5. 類的繼承
子類繼承了父類,便繼承了父類方法、屬性。子類中可使用父類方法、屬性,也可自行擴展。
關鍵字:extends
子類不是父類子集,是擴展。
Java只支持單繼承,不允許多繼承。
6. 方法重寫
在子類中可以根據需要對父類中繼承來的方法進行改造。也稱方法重置、覆蓋。在程式執行時子類方法將覆蓋父類方法。
註:
- 重寫方法必須和被重寫方法具有相同的方法名、參數列表、返回值類型。
- 重寫方法不能使用比被重寫方法更為嚴格的訪問許可權。
- 重寫與被重寫方法必須同時為static的或者同為非static的。
- 子類方法拋出異常不能大於父類被重寫方法拋出異常。
7. super關鍵字
Java中利用super來調用父類指定操作。
- 可用於訪問父類中定義的屬性。
- 可用於調用父類中定義的成員方法。
- 可用於在子類構造方法中調用父類構造器。
7.1. 註意事項
- 當子、父類出現同名成員,用super區分。
- Super追溯不僅限直接父類。
- Super和this類似,this表示本類對象引用,super代表父類的記憶體空間標識
7.2. 父類構造器
當父類中沒有空參數的構造器時,子類構造器必須通過this()或super()語句指定調用本類或父類相應構造器,且必須放在首行。
如果子類構造器中既無顯式調用父類或本類構造器,且父類無無參構造函數,則編譯報錯。