20191116java筆記:內部類

#1、內部類(Inner class)java

定義:在Java中,容許一個類的定義位於另外一個類的內部,前者稱謂內部類,後者稱爲外部類編程

1.內部類的分類

  • 成員內部類:在類內部直接定義的類(可分爲靜態和非靜態內部類)
  • 一方面,做爲外部類的成員
  1. 調用外部類的結構(方法、屬性)
  2. 調用外部類的屬性和方法時,須要完整路徑 Person.this.屬性
  3. 能夠被四種不一樣的權限修飾
  • 另外一方面,做爲一個類
  1. 能夠定義屬性方法和構造器
  2. 能夠用final修飾,表示此類不能被繼承;不適用final,則此內部類能夠被繼承
  3. 能夠用abstract修飾
  • 局部內部類:方法內、代碼塊內、構造器內
  • 注意點1:在局部內部類的方法中,若是須要調用局部內部類所聲明的方法中的局部變量的話,必須是final修飾的變量

2. 關於內部類,須要關注三個點

  • 如何實例化成員內部類的對象
Person.Don dog = new Person.Dog(); // 靜態內部類的實例化方式
	Person.Bird bird = new Person().new Bird(); // 非靜態內部類的實例化方式
  • 如何在成員內部類中區分調用外部類的結構
System.out.println(name); // 直接調用形參
	System.out.println(this.name); // 調用內部類的非靜態屬性
	System.out.println(Person.this.name); // 調用外部類的非靜態屬性
  • 開發中,局部內部類的使用
public Comparable getComparable(){
		// 方式一:
		// 內部類實現接口
		class MyComparable implements Comparable{
			// 重寫接口中的方法
		}
		return new MyComparable(); // 建立並返回該類的對象
		// 方式二:匿名類
		return new Comparable(){
			// 重寫接口中的方法
		}
	
	}

2、異常處理

1. Java程序在執行過程當中所發生的異常時間可分爲兩類

  • Error:Java虛擬機沒法解決的嚴重問題。如:JVM系統內部錯誤、資源耗盡等嚴重狀況。通常不編寫針對性的代碼進行處理
  • Exception:其它因編程錯誤或偶然外在因素致使的通常性問題,可使用針對性的代碼進行處理。例如:
  1. 空指針訪問
  2. 試圖讀取不存在的文件
  3. 網絡鏈接中斷
  4. 數組角標越界

2. 異常處理:抓拋模型

  • 過程一:"拋":程序正常執行的過程當中,一旦出現異常,就會在異常代碼處生成一個對應異常類的對象,並將此拋出,一旦拋出對象之後,其後代碼就再也不執行;
  • 過程二:"抓":能夠理解爲異常的處理方式,
  1. try...catch...finally:
  2. throws:
相關文章
相關標籤/搜索