Java學習之路(基礎二)
阿新 • • 發佈:2018-12-16
Java製作幫助文件
- 幫助文件製作的基本語法格式: dos下:javadoc -d document -author -version ArrayTool.java
程式碼塊
- 用"{}" 包裹起來的程式碼都叫做程式碼塊。
- 常見有以下幾類:
- 區域性程式碼塊 在類的方法中"{}"包裹的部分,目的是為了及時釋放記憶體。
- 構造程式碼塊 在類中用"{}"包裹起來的部分,把多個構造方法的相同部分放在此處,載入在物件構造方法之前。
- 靜態程式碼塊 在類中用static修飾,且由"{}"包裹起來的部分,對類進行初始化時候即載入,相對於以上,最早。
- for example:
class animal{ { 構造程式碼塊 } static{ 靜態構造程式碼塊 } public static void main(String[] args){ { 區域性程式碼塊 } System.out.println("測試程式碼塊"); } }
- 載入順序:
可以描述為:靜態程式碼塊 > 構造程式碼塊 > 構造方法.
繼承(extends)
-
定義:
將多類中的相同部分抽取出來定義一個類,然後其他的類繼承該類。 語法:class SonClass extends FatherClass. 分析: 程式碼具有良好的複用性,類之間的關係是多型的一個前提,但是耦合性增強導致改變一個類可能會引起其他類的改變。 PS:利於程式碼的維護?(耦合和方便同時存在,而程式設計的原則是:低耦合,高內聚。)
-
基本規則
class FatherClass extends GradpaClass; class SonClass extends FatherClass;
但是不能:
class a extends b,c;
結構體不能由表示返回資料型別的修飾符修飾,如:void,int,float…否則不會識別成結構體 。 子類繼承父類,它是會將父類初始化的,所以必定會載入類似於父類的: 靜態程式碼塊,結構程式碼塊,構造方法(預設無參構造,若沒有則需要子類的帶參構造下用:super(VaribleNum1.VaribleNum2))初始化,不然報錯,該句之前不能寫任何程式碼,不然也報錯。 子類繼承
- 由private修飾,不能繼承;父類構造方法不能繼承,但是若:
class FatherClass{ private DataType VariableNum1; private DataType VariableNUm2; FatherClass(){ System.out.println("FatherStructure"); } public void FaTherClass(DataType VaribleNum1,DataType VaribleNum2){ this.VaribleNum1 = VaribleNum1; this.VaribleNUm2 = VaribleNum2; } } class SonClass extends FatherClass{ SonClass(){ System.out.println("SonStruture"); } SonClass (DataType VaribleNum1,DataType VaribleNum2){ /*下面這種寫法是錯誤的。 this.VaribleNum1 = VaribleNum1; this.VaribleNUm2 = VaribleNum2; */ //此處是呼叫父類的帶參初始化父類,不然報錯。 super(VaribleNum1,VaribleNum2); } } class Modle(){ public static void main(String[] args){ SonClass Sonfile = new SonClass(); SonClass Sonfile = new SonClass(VaribleNum1,VaribleNUm2); } }
則輸出結果為:
FatherStruture;
SonStructure;
原理為:訪問父類的初始化,所以預設訪問父類無參構造,。
- 若需要保護父類,則需要新增private修飾,再通過父類的公有方法呼叫,若沒有寫該方法,只寫了父類的構造方法去呼叫pivate修飾的資料,則:
//不得寫任何程式碼,不然報錯。
super(VaribleNum1, VaribleNum2)
- 繼承中的變數查詢順序:
子類方法區域性變數 -> 子類成員變數 -> 父類成員變數 -> 報錯。