內部類(inner class)就是定義在乙個類裡面的類。與之對應,包含內部類的類被稱為外部類。
內部類的主要作用:內部類可分為以下幾種:1. 提供了更好的封裝。即可以隱藏在外部類之內,不允許同乙個包中的其他類訪問。
2. 內部類可直接訪問外部類的所有資料。
3. 事實上,內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類更方便。
1. 成員內部類
2. 靜態內部類
3. 方法內部類
4. 匿名內部類
這裡主要介紹前三種。
內部類中最常見的就是成員內部類,也稱為普通內部類。
示例**:
public
class outer
}public
static
void
main(string args)
}
從上述**中可知,成員內部類的使用方法:
1. inner 類定義在 outer 類的內部,相當於 outer 類的乙個成員變數的位置。inner 類可以使用任意訪問控制符,如 public 、 protected 、 private 等。
2. inner 類中定義的 test() 方法可以直接訪問 outer 類中的資料,而不受訪問控制符的影響,如直接訪問 outer 類中的私有屬性a。
3. 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件。
注意:例如:1. 外部類不能直接使用內部類的成員和方法。可先建立內部類的物件,然後通過內部類的物件來訪問其成員變數和方法。
2. 如果外部類和內部類具有相同的成員變數或方法,內部類預設訪問自己的成員變數或方法,如果要訪問外部類的成員變數,可以使用 this 關鍵字。
public
class outer
}...
}
靜態內部類是 static 修飾的內部類。
這種內部類的特點是:
示例**:
public
class souter
}public
static
void
main(string args)
}
執行結果:
訪問外部類中的b: 2方法內部類就是內部類定義在外部類方法中的類。方法內部類只在該方法的內部可見,即只在該方法內可以使用。訪問內部類中的b: 3
注意:由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。示例**:
public
class outer
}minner mi = new minner();
mi.print();
}public
static
void
main(string args)
}
執行結果:
訪問外部類方法中的常量a:1訪問內部類中的變數c:3
Java內部類學習小結
靜態內部類 類內部類 成員內部類 例項內部類 方法內部類 匿名內部類 不能引用外部類的例項變數和例項方法 例項建立方式 public class outstaticinner class newinner不能引用外部類的類變數和類方法 不能有類成員變數和方法,可以有常量。如果外部類的類方法m中或者類...
Java中的內部類小結
內部類 如果a類需要直接訪問b類中的成員,而b類又需要建立a類的物件。這時,為了方便設計和訪問,直接將a類定義在b類中。就可以了。a類就稱為內部類。內部類可以直接訪問外部類中的成員。而外部類想要訪問內部類,必須要建立內部類的物件。class outer.方法。匿名內部類的使用場景 當函式的引數是介面...
Java內部類的使用小結
內部類不是非常好理解。但說白了事實上也就是乙個類中還包括著另外乙個類 如同乙個人是由大腦 肢體 器官等身體結果組成。而內部類相當於當中的某個器官之中的乙個,比如心臟 它也有自己的屬性和行為 血液 跳動 顯然,此處不能單方面用屬性或者方法表示乙個心臟,而須要乙個類 而心臟又在人體其中,正如同是內部類在...