Inner Class Back
- Inner Class(內部類): 指的是嵌套在類裏面的類.
- 內部類多了Private和Protected的修飾符(跟成員級別的修飾符含義一樣)
Type | Description |
---|---|
成員內部類 | 定義在類裏的類, 作為一個外部類的成員 |
局部內部類 | 定義在方法內的類 |
匿名內部類 | 只定義一次的內部類 |
###內部類訪問外部類
- 可直接訪問(但靜態內部類不能訪問外部類的非靜態成員)
###外部類訪問內部類
成員類型 | 訪問方式 |
---|---|
靜態成員 | InnerClass.member; |
非靜態成員 | new InnerClass().member; |
###定義(Definition)
OutterClass oc = new OutterClass();
OutterClass.InnerClass a = oc.new Innerclass(); //define a reference
###作用域(Scope)
x = 1; //method裏的局部成員
this.x = 1; //內部類的成員
OutterClass.this.x = 1; //外部類的成員
###匿名內部類(Unnamed Inner Class)
- 不能定義Constructor(只能使用默認無參數的Constructor)
- 不能是抽象類
addMouseListner(new MouseAdapter()
{
//implements
public void MouseEntered()
{
//...
}
}
);