定義:把乙個類定義在另乙個類的內部,稱為內部類。
內部類可以訪問外部類的私有資料,因為內部類被當成外部類的成員,同乙個類間的成員可以相互訪問,但外部類不能訪問內部類的實現細節。
內部類不外部類多了三個修飾符:privte、protected、static。
成員內部類是一種與成員變數、方法、構造器和初始化相似的類成員,而區域性內部類和匿名內部類則不是類成員。
如果外部類的成員變數、內部類的成員變數和內部類裡的區域性方法成員變數同名,則可任意通過使用 「this.變數名」、「外部類類名.this.變數名」來區分。
成員內部類分為兩種:靜態內部類和非靜態內部類。
1、非靜態內部類:
定義語法格式:
public class outer{
//此處可以定義內部類
非靜態內部類可以訪問直接外部類的private成員,但是如果外部類需要訪問內部類的成員,則必須顯示建立非靜態內部類物件來呼叫訪問其實例成員。
非靜態內部類裡不能有靜態方法、靜態成員變數、靜態初始化塊。
2、靜態內部類:
靜態內部類可以包含靜態成員,也可以包含非靜態成員。
靜態內部類是外部類的乙個靜態成員,因此外部類的所有方法、所有初始化塊可以用靜態內部類的類名來作為呼叫者來訪問內部類的類成員,也可以使用靜態內部類物件作為呼叫者來訪問靜態內部類的例項成員。
3、匿名內部類:
匿名內部類就是沒有名字的內部類。
匿名內部類不能定義構造器。
匿名內部類不能是抽象類,必須實現介面或者抽象父類的所有抽象方法。
匿名內部類繼承乙個父類(有且只有乙個)或者實現乙個介面(有且只有乙個),實現父類或者介面中所有的抽象方法,改寫父類中的方法,新增自定義方法。
當 匿名內部類和內部類有同名變數(方法)時,預設訪問是匿名內部類的變數(方法),訪問外部變數(方法)則要加上外部類的類名。
匿名內部類不能定義任何靜態成員、方法。
匿名內部類訪問外部類的成員變數或成員方法時必須用static修飾。
匿名內部類不能定義任何的靜態成員、方法。?????????
JAVA中的內部類 方法內部類
方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。下邊的例子 外部類 public class helloworld 建立方法內部類的物件 min...
Java中內部類
內部類的規則 1.內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有乙個外部類的引用,格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置了,而且非私有,可以在外部其他類中。可以直接建立內部類...
java中內部類
下面我列出個程式,能看懂這個程式的錯誤相信對內部類的理解就變得容易多了 class innerclassdemo6 public void method public static void main string args 在這個程式中有兩個錯誤的地方 另外乙個程式,補足程式,用到匿名內部類的知識...