如何呼叫區域性內部類中的方法
阿新 • • 發佈:2018-12-26
內部類:將類寫在其他類的內部,可以寫在其他類的成員位置和區域性位置
區域性內部類:將類寫在其他類的區域性方法中
例如
public class outer {
public void out(){
int i=2;
class Inner{
int a=1;
public void inner(){
System.out.println(a);
}
}
}
}
其中Inner就是區域性內部類
那麼如何呼叫Inner類中的inner()方法呢?
我們知道,在main方法中是沒有辦法直接呼叫類的方法中的區域性變數,例如上面程式碼中的區域性變數i是沒有辦法直接呼叫的。但是可以修改out()方法的返回值呼叫i。
而區域性內部類呼叫,只能在out()方法中new一個物件來呼叫。
例如
public class outer {
public void out(){
int i=2;
class Inner{
int a=1;
public void inner(){
System.out.println(a);
}
}
Inner in=new Inner();
in.inner();
}
}
或者使用匿名物件呼叫
注意 匿名物件沒有引用變數,只能使用一次,每次建立一個匿名物件都在堆中分配記憶體,都具有不同的記憶體地址。建立多了比較浪費資源。public class outer { public void out(){ int i=2; class Inner{ int a=1; public void inner(){ System.out.println(a); } } new Inner().inner(); } }