java內部類之成員內部類之區域性內部類

biubiubiuo發表於2018-02-23

區域性內部類特點:
  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();
	}
}

  

相關文章