Java匿名對象與匿名內部類
匿名對象:沒有名字的對象。
非匿名對象:
ClassName c=new ClassName();
c.run();
匿名對象:
new ClassName().run();
注意事項:
1、當對象對方法僅進行一次調用的時候,就可以簡化成匿名對象。
2、兩個匿名對象不可能是同一個對象。
3、一般不給匿名對象賦予屬性值,因為永遠無法獲取到。
4、運行一次,直接就被回收掉了,節(jié)省內存空間。
匿名對象使用的代碼例子:
public class Anony{
int a=1;
int b=2;
void run(){
System.out.println(a+b);
}
public static void main(String[] args){
new Anony().a=10; //匿名對象不能重新賦值,賦值仍然失效
Anony a=new Anony();
a.run(); //通過創(chuàng)建對象的方式去調用方法
new Anony().run(); //匿名創(chuàng)建對象并調用方法
}
}
運行結果:
3
3
匿名內部類:匿名內部類也就是沒有名字的內部類。
格式:
ClassName object=new ClassName(){
/*代碼塊*/
};
注意事項:
1、匿名內部類必須繼承一個父類或實現(xiàn)一個接口。
抽象類代碼例子:(接口同理)
abstract class AnonyTest{
int a=1;
int b=2;
public abstract void run();
}
public class AnonyInner{
public static void main(String[] args){
AnonyTest a=new AnonyTest(){ //抽象匿名類
public void run() {
System.out.println(a+b);
}
};
a.run();
}
}
如果不使用匿名內部類來實現(xiàn)抽象方法:
abstract class AnonyTest{
int a=1;
int b=2;
public abstract void run();
}
class AnonyDemo extends AnonyTest{
public void run() {
System.out.println(a+b);
}
}
public class AnonyInner{
public static void main(String[] args) {
AnonyTest a=new AnonyDemo(); //上轉對象
a.run();
}
}
運行結果:
3
相關文章
java生成csv文件亂碼的解決方法示例 java導出csv亂碼
這篇文章主要介紹了java生成csv文件亂碼的解決方法,大家可以直接看下面的示例2014-01-01
logback標記日志過濾器MarkerFilter源碼解讀
這篇文章主要為大家介紹了logback標記日志過濾器MarkerFilter源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
教你使用idea搭建ssm詳細教程(Spring+Spring Mvc+Mybatis)
今天教大家使用idea搭建ssm詳細教程(Spring+Spring Mvc+Mybatis),文中有非常詳細的圖文介紹及代碼示例,對正在學習使用idea的小伙伴很有幫助,需要的朋友可以參考下2021-05-05
SpringBoot2 Jpa 批量刪除功能的實現(xiàn)
這篇文章主要介紹了SpringBoot2 Jpa 批量刪除功能的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

