區域性內部類特點:
1.定義在程式碼塊、方法體內的類叫區域性內部類
2.區域性內部類訪問外部類的屬性和方法使用“外部類名.this.屬性名”和“外部類名.this.方法名(引數)”的形式
3.對外部世界完全隱藏,只能在作用域內生成物件。
區域性內部類有以下限制:
1.區域性類不能加訪問修飾符,因為他們不是類成員
2.成員內部類不能與外部類重名
3.區域性內部類訪問作用域內的區域性變數,該區域性變數需要加final修飾
public class LocalInnerClass { public static void main(String[] args) { // TODO Auto-generated method stub Outer3 outer3 = new Outer3(); outer3.OuterShow(); } } class Outer3{ private int num1 = 1; private static int num2 = 2; public void OuterShow() { final int num4 = 4;//fianl好像修復了,不宣告為final在內部類裡也可以用(可以去掉final) //Inner inner = new Inner();不能在這裡例項化,因為Inner類還沒有初始化,就不能呼叫該類 class Inner{//區域性內部類不能加訪問修飾符 public void show() { int num1 = 10; System.out.println(num1); System.out.println(Outer3.this.num1);//呼叫外部類的屬性寫法 System.out.println(Outer3.num2);//呼叫外部靜態屬性寫法 System.out.println(num4); } } Inner inner = new Inner();//應該在這裡例項化 inner.show(); } }