#1、內部類(Inner class)java
定義:在Java中,容許一個類的定義位於另外一個類的內部,前者稱謂內部類,後者稱爲外部類編程
- 一方面,做爲外部類的成員
- 調用外部類的結構(方法、屬性)
- 調用外部類的屬性和方法時,須要完整路徑 Person.this.屬性
- 能夠被四種不一樣的權限修飾
- 另外一方面,做爲一個類
- 能夠定義屬性方法和構造器
- 能夠用final修飾,表示此類不能被繼承;不適用final,則此內部類能夠被繼承
- 能夠用abstract修飾
- 注意點1:在局部內部類的方法中,若是須要調用局部內部類所聲明的方法中的局部變量的話,必須是final修飾的變量
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(){ // 重寫接口中的方法 } }
- 空指針訪問
- 試圖讀取不存在的文件
- 網絡鏈接中斷
- 數組角標越界