如何理解Java內(nèi)部類中的匿名內(nèi)部類,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
匿名內(nèi)部類
匿名內(nèi)部類應(yīng)該是平時我們編寫代碼時用得最多的,在編寫事件監(jiān)聽的代碼時使用匿名內(nèi)部類不但方便,而且使代碼更加容易維護。下面這段代碼是一段Android事件監(jiān)聽代碼:
scan_bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); history_bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } });
這段代碼為兩個按鈕設(shè)置監(jiān)聽器,這里面就使用了匿名內(nèi)部類。這段代碼中的:
new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }
就是匿名內(nèi)部類的使用。代碼中需要給按鈕設(shè)置監(jiān)聽器對象,使用匿名內(nèi)部類能夠在實現(xiàn)父類或者接口中的方法情況下同時產(chǎn)生一個相應(yīng)的對象,但是前提是這個父類或者接口必須先存在才能這樣使用。當(dāng)然像下面這種寫法也是可以的,跟上面使用匿名內(nèi)部類達到效果相同。
private void setListener() { scan_bt.setOnClickListener(new Listener1()); history_bt.setOnClickListener(new Listener2()); } class Listener1 implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub } } class Listener2 implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub } }
這種寫法雖然能達到一樣的效果,但是既冗長又難以維護,所以一般使用匿名內(nèi)部類的方法來編寫事件監(jiān)聽代碼。同樣的,匿名內(nèi)部類也是不能有訪問修飾符和static修飾符的。
匿名內(nèi)部類是唯一一種沒有構(gòu)造器的類。正因為其沒有構(gòu)造器,所以匿名內(nèi)部類的使用范圍非常有限,大部分匿名內(nèi)部類用于接口回調(diào)。匿名內(nèi)部類在編譯的時候由系統(tǒng)自動起名為Outter$1.class。一般來說,匿名內(nèi)部類用于繼承其他類或是實現(xiàn)接口,并不需要增加額外的方法,只是對繼承方法的實現(xiàn)或是重寫。
關(guān)于如何理解Java內(nèi)部類中的匿名內(nèi)部類問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。
分享題目:如何理解Java內(nèi)部類中的匿名內(nèi)部類-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article0/dggcio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站制作、定制網(wǎng)站、軟件開發(fā)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容