一、分類:
1、 成員內部類
- 格式:
修飾符 class 外部類名稱{
修飾符 class 內部類名稱{
//……
}
//……
}
-
注意:
內用外,隨意訪問;
外用內,需要內部對象
-
使用:
- 間接方式:在外部類的方法中使用內部類,然后main知識調用外部類的方法
- 直接方式:
- 外部類名稱 . 內部類名稱 對象名 = new 外部類名稱() . new 內部類名稱();
2、局部內部類(包含匿名內部類)
- 格式:
修飾符 class 外部類名稱{
修飾符 返回值類型 外部類方法名稱(參數列表){
修飾符 class 內部類名稱{
//……
}
//……
//在方法里,定義內部類對象並調用內部類變量或方法
}
}
- 注意:只有當前所屬的方法才能使用局部內部類,出了方法就不能用
二、訪問同名變量
public class outter{
int num = 1;//外部類的成員變量
public class inner{
int num = 2;//內部類的成員變量
public void methodInner(){
int num = 3;//內部類方法的局部變量
System.out.println(num);//就近原則 3
System.out.println(this.num);//2
System.out.println(Outter.this.num);//1
}
}
}
類的權限修飾符
-
外部類:
public / (default)
-
成員內部類:
``public / protected / (default) / private`
-
局部內部類:
什么都不能寫
,也不是(default)