1. 程式人生 > >java內部類之成員內部類之局部內部類

java內部類之成員內部類之局部內部類

generated () 對象 靜態 pre rsh java內部類 cal pos

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

  

java內部類之成員內部類之局部內部類