Java匿名對(duì)象與匿名內(nèi)部類
匿名對(duì)象:沒有名字的對(duì)象。
非匿名對(duì)象:
ClassName c=new ClassName();
c.run();
匿名對(duì)象:
new ClassName().run();
注意事項(xiàng):
1、當(dāng)對(duì)象對(duì)方法僅進(jìn)行一次調(diào)用的時(shí)候,就可以簡(jiǎn)化成匿名對(duì)象。
2、兩個(gè)匿名對(duì)象不可能是同一個(gè)對(duì)象。
3、一般不給匿名對(duì)象賦予屬性值,因?yàn)橛肋h(yuǎn)無(wú)法獲取到。
4、運(yùn)行一次,直接就被回收掉了,節(jié)省內(nèi)存空間。
匿名對(duì)象使用的代碼例子:
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; //匿名對(duì)象不能重新賦值,賦值仍然失效
Anony a=new Anony();
a.run(); //通過(guò)創(chuàng)建對(duì)象的方式去調(diào)用方法
new Anony().run(); //匿名創(chuàng)建對(duì)象并調(diào)用方法
}
}
運(yùn)行結(jié)果:
3
3
匿名內(nèi)部類:匿名內(nèi)部類也就是沒有名字的內(nèi)部類。
格式:
ClassName object=new ClassName(){
/*代碼塊*/
};
注意事項(xiàng):
1、匿名內(nèi)部類必須繼承一個(gè)父類或?qū)崿F(xiàn)一個(gè)接口。
抽象類代碼例子:(接口同理)
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();
}
}
如果不使用匿名內(nèi)部類來(lái)實(shí)現(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(); //上轉(zhuǎn)對(duì)象
a.run();
}
}
運(yùn)行結(jié)果:
3
相關(guān)文章
淺談Java中ThreadLocal內(nèi)存泄露的原因及處理方式
內(nèi)存泄漏就是我們申請(qǐng)了內(nèi)存,但是該內(nèi)存一直無(wú)法釋放,就會(huì)導(dǎo)致內(nèi)存溢出問題,本文詳細(xì)的介紹了ThreadLocal內(nèi)存泄露的原因及處理方式,感興趣的可以了解一下2023-05-05
使用java寫的矩陣乘法實(shí)例(Strassen算法)
這篇文章主要給大家介紹了關(guān)于如何使用java寫的矩陣乘法(Strassen算法)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Java使用wait() notify()方法操作共享資源詳解
這篇文章主要為大家詳細(xì)介紹了Java使用wait() notify()方法操作共享資源,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程
本文給大家介紹使用idea開發(fā)Spark SQL 的詳細(xì)過(guò)程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-08-08
Spring聲明式事務(wù)和@Aspect的攔截順序問題的解決
本篇文章主要介紹了Spring聲明式事務(wù)和@Aspect的攔截順序問題的解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
在java中如何將inputStream對(duì)象轉(zhuǎn)換為File對(duì)象(不生成本地文件)
這篇文章主要介紹了在java中如何將inputStream對(duì)象轉(zhuǎn)換為File對(duì)象(不生成本地文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03

