局部内部类
?內部類不僅可以在類中進行定義,也可以在類的局部位置定義,如在類的方法或任意的作用域中均可以定義內部類。
interface Outinterface2 {
}
class OuterClass3{
?? public Outinterface2 doit(final String x) {???? //doit()方法參數為final類型
//在doit方法中定義一個內部類
?????? class innerClass2 implements Outinterface2{
???????? innerClass2(String s){
?????????? s=x;
?????????? System.out.println(s);
??????????? }
???? }
?? return new innerClass2("doit");
?? }
}
從上述代碼中可以看出,內部類被定義在了doit()方法內部。內部類innerClass2是doit()方法的一部分,并非OutClass3類中的一部分,所以在doit()方法的外部不能訪問該內部類,但是該內部類可以訪問當前代碼塊的常量以及此外部類的所有成員。
在方法中定義的內部類只能訪問方法中final類型的局部變量,這是因為在方法中定義的局部變量相當于一個常量,它的生命周期超出方法運行的生命周期,由于該局部變量被設置為final,所以不能在內部類中改變該局部變量的值。
轉載于:https://my.oschina.net/wf1994/blog/674412
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: thinkphp 3.2 unional
- 下一篇: ubuntu,kali linux和wi