欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java培訓(xùn)分享匿名類 匿名內(nèi)部類

2019-04-08 13:33:25 2353瀏覽

很多在學(xué)習(xí)Java基礎(chǔ)的時候總會遇到一個問題,這個匿名內(nèi)部類為什么只能用一次呢?他到底是什么玩意兒?為什么這里會new一個接口???這什么呀這是!本篇文章扣丁學(xué)堂Java培訓(xùn)小編給讀者們分享一下匿名類,匿名內(nèi)部類。



扣丁學(xué)堂Java培訓(xùn)分享匿名類 匿名內(nèi)部類



首先我們來看一下內(nèi)部類的定義:


在一個類中定義另一個類,這樣定義的類稱為內(nèi)部類?!景瑑?nèi)部類的類可以稱為內(nèi)部類的外部類】


如果想要通過一個類來使用另一個類,可以定義為內(nèi)部類。【比如蘋果手機(jī)類,蘋果手機(jī)類中的黃金版的是特別定制的】


內(nèi)部類的外部類的成員變量在內(nèi)部類中仍然有效,內(nèi)部類中的方法也可以調(diào)用外部類中的方法。【不論是靜態(tài)還是非靜態(tài)的,內(nèi)部類都可以直接調(diào)用外部】


內(nèi)部類的類體中不可以聲明類變量和類方法


內(nèi)部類可以由外部類使用外部類中在函數(shù)中創(chuàng)建內(nèi)部類對象來使用,如果內(nèi)部類的權(quán)限是非私有,非靜態(tài)的,就可以在外部其他程序中被訪問到,就可以通過創(chuàng)建外部類對象完成;如果內(nèi)部類是靜態(tài)的,非私有的,靜態(tài)成員可以直接類名調(diào)用,非靜態(tài)成員通過創(chuàng)建外部類對象使用。



再來看一下匿名類的定義:


匿名類,就是沒有名稱的類,其名稱由Java編譯器給出,一般是形如:外部類名稱+$+匿名類順序,沒有名稱也就是其他地方就不能引用,不能實例化,只用一次,當(dāng)然也就不能有構(gòu)造器。


匿名類就是利用父類的構(gòu)造函數(shù)和自身類體構(gòu)造成一個類。


匿名類可以繼承父類的方法,也可以重寫父類的方法。


匿名類可以訪問外部類的成員變量和方法,匿名類的類體不可以聲明稱static成員變量和static方法。


匿名類由于是一個new的結(jié)果,所以其實可以賦值給一個父類對象。因此可以分為兩種匿名類,成員匿名類和局部匿名類(作為函數(shù)參數(shù))


上文都說匿名內(nèi)部類就是沒有名字的內(nèi)部類,哪個類沒有名字呢?好多文章都是直接告訴你什么什么是匿名內(nèi)部類,如下面:


我們一般會用來做參數(shù)的傳遞, 直接用接口來做    

public interface D { void run(); }

public class B{@Overridepublic void run(D d) { d.run(); } }

看到這里是不是還是很疑惑,為什么接口也能new了呢?其實不然,在我們寫一個內(nèi)部類的時候,我們是省略了一些東西的

public class cryptonym { public static void main(String[]args) { B b=new B(); //調(diào)用時使用匿名類創(chuàng)建匿名對象 b.show(new D( public void run() { System.out.println("hello");){ } }); }}


這樣來看是不是就明了許多了?其實本意就是繼承了D這個接口之后,重寫了其中的方法。只不過我們再代碼中對這個類使用的次數(shù)不多。所以我們不需要再去寫一個繼承的類,來加大JVM的工作量,是不是很有意思。


想要了解更多關(guān)于Java開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂Java培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的Java講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的Java視頻教程定能讓你快速掌握J(rèn)ava從入門到精通開發(fā)實戰(zhàn)技能??鄱W(xué)堂Java技術(shù)交流群:850353792。


扣丁學(xué)堂微信公眾號                          Python全棧開發(fā)爬蟲人工智能機(jī)器學(xué)習(xí)數(shù)據(jù)分析免費公開課直播間


【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】         【掃碼進(jìn)入Python全棧開發(fā)免費公開課】



查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>


標(biāo)簽: Java培訓(xùn) Java視頻教程 Java多線程 Java面試題 Java學(xué)習(xí)視頻 Java開發(fā)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部