1. 程式人生 > >java中的外部類和內部類

java中的外部類和內部類

1.概念

外部類:這是一個相對內部類的概念,如果一個類中嵌套了另外一個類,我們就把這個類叫做外部類。

 內部類:顧名思義,就是定義在裡邊的那個類。  見以下程式碼:


定義了一個類Outer,在Outer內中一定了私有成員變數x ,成員方法show()和一個內部類 Inner  ; Inner類和普通類一樣也有一個成員變數 x 和成員方法 method  2.訪問規則   1. 內部類可以直接訪問外部類中的成員    2.外部類訪問內部類有兩種方式:      第一種方式: 在主函式中直接用建立內部類物件的方式 , 如  :  Outer out = new Outer();       Outer.Inner in = out.new Inner();   這種方式通常不會用到,不建議使用     第二種方式:   在外部類方法中建立內部類物件; 在主函式中建立外部類物件,直接呼叫外部類方法 。 見以下程式碼 :           
3.訪問內部類中的成員變數。      思考一個問題,上邊的程式碼中,打印出來的 x 的值是幾 ?       沒錯,是 6  . 再看看以下的程式碼              定義了一個區域性變數, 問 現在列印的x 的值是多少了 ?      答案是 4 。      這說明了什麼 ?       如果 x 前面什麼都沒有,那麼內部類中方法訪問的是區域性變數 ; 如果沒有區域性變數的,就訪問 類中的成員變數 x  .  再來看看以下的程式碼 : 繼續思考 列印的x值會是多少      這時候就變成 3 了 , 所如果要訪問外部成員變數 要加上 Outer.this   。  注: 當然,就想Inner類中如果沒有區域性變數 x ,即使不加也無所謂程式列印的一樣是 6 ,也就是說 如果沒有區域性變數x Inner類中也沒有成員變數x ,這個時候即便 x 前邊什麼也不加訪問的也是 外部的 x 值3 了  。 見程式碼所示 :