局部內部類

 內部類不只能夠在類中進行定義,也能夠在類的局部位置定義,如在類的方法或任意的做用域中都可以定義內部類。生命週期

interface Outinterface2 {作用域

}it

class OuterClass3{class

   public Outinterface2 doit(final String x) {     //doit()方法參數爲final類型變量

//在doit方法中定義一個內部類方法

       class innerClass2 implements Outinterface2{im

         innerClass2(String s){new

           s=x;return

           System.out.println(s);參數

            }

     }

   return new innerClass2("doit");

   }

}

從上述代碼中能夠看出,內部類被定義在了doit()方法內部。內部類innerClass2是doit()方法的一部分,並不是OutClass3類中的一部分,因此在doit()方法的外部不能訪問該內部類,可是該內部類能夠訪問當前代碼塊的常量以及此外部類的全部成員。

在方法中定義的內部類只能訪問方法中final類型的局部變量,這是由於在方法中定義的局部變量至關於一個常量,它的生命週期超出方法運行的生命週期,因爲該局部變量被設置爲final,因此不能在內部類中改變該局部變量的值。

相關文章
相關標籤/搜索