java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?
展開全部
java匿名內部類一定是在new的后面,用其隱含實現一個接口或實現一個類,沒有類名,根據多態,我們e69da5e887aa62616964757a686964616f31333337613863使用其父類名。因他是局部內部類,那么局部內部類的所有限制都對其生效。匿名內部類是唯一一種無構造方法類。大部分匿名內部類是用于接口回調用的。匿名內部類在編譯的時候由系統自動起名Out$1.class。如果一個對象編譯時的類型是接口,那么其運行的類型為實現這個接口的類。因匿名內部類無構造方法,所以其使用范圍非常的有限。當需要多個對象時使用局部內部類,因此局部內部類的應用相對比較多。匿名內部類中不能定義構造方法。如果一個對象編譯時的類型是接口,那么其運行的類型為實現這個接口的類。
示例如下:public?class?Outer?{
private?static?int?i?=?1;
private?int?j?=?10;
public?static?void?outer_f1(){
}
public?void?outer_f2(){
}
//?靜態內部類可以用public,protected,private修飾
//?靜態內部類中可以定義靜態或者非靜態的成員
static?class?Inner{
static?int?inner_i?=?100;
int?inner_j?=?200;
static?void?inner_f1(){
System.out.println("Outer.i"+i);//靜態內部類只能訪問外部類的靜態成員
outer_f1();//包括靜態變量和靜態方法
}
void?inner_f2(){
//?System.out.println("Outer.i"+j);//靜態內部類不能訪問外部類的非靜態成員
//?outer_f2();//包括非靜態變量和非靜態方法
}
}
public?void?outer_f3(){
//?外部類訪問內部類的靜態成員:內部類.靜態成員
System.out.println(Inner.inner_i);
Inner.inner_f1();
//?外部類訪問內部類的非靜態成員:實例化內部類即可
Inner?inner?=?new?Inner();
inner.inner_f2();
}
public?static?void?main(String[]?args)?{
new?Outer().outer_f3();
}
}
總結
以上是生活随笔為你收集整理的java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 富士康正式宣布启用直播招工:近30万人次
- 下一篇: Java学习笔记—TCP通信