1. 程式人生 > >Java學習之路(基礎二)

Java學習之路(基礎二)

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)
  • 繼承中的變數查詢順序:
	子類方法區域性變數 -> 子類成員變數 -> 父類成員變數 -> 報錯。