課程
/后端開發(fā)
/Java
/Java入門第二季
class A{
void?get(){ ????int?a; ????class?B(){ ????????; ????} }
}
2016-05-22
源自:Java入門第二季 7-8
正在回答
?????為什么要使用內(nèi)部類?在《Think in java》中有這樣一句話:使用內(nèi)部類最吸引人的原因是:每個內(nèi)部類都能獨立地繼承一個(接口的)實現(xiàn),所以無論外圍類是否已經(jīng)繼承了某個(接口的)實現(xiàn),對于內(nèi)部類都沒有影響。
????? 在我們程序設計中有時候會存在一些使用接口很難解決的問題,這個時候我們可以利用內(nèi)部類提供的、可以繼承多個具體的或者抽象的類的能力來解決這些程序設計問題??梢赃@樣說,接口只是解決了部分問題,而內(nèi)部類使得多重繼承的解決方案變得更加完整。
????其實使用內(nèi)部類最大的優(yōu)點就在于它能夠非常好的解決多重繼承的問題,但是如果我們不需要解決多重繼承問題,那么我們自然可以使用其他的編碼方式,但是使用內(nèi)部類還能夠為我們帶來如下特性(摘自《Think in java》):
????? 1、內(nèi)部類可以用多個實例,每個實例都有自己的狀態(tài)信息,并且與其他外圍對象的信息相互獨立。
??????2、在單個外圍類中,可以讓多個內(nèi)部類以不同的方式實現(xiàn)同一個接口,或者繼承同一個類。
??????3、創(chuàng)建內(nèi)部類對象的時刻并不依賴于外圍類對象的創(chuàng)建。
??????4、內(nèi)部類并沒有令人迷惑的“is-a”關(guān)系,他就是一個獨立的實體。
??????5、內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。
摘之博客:http://www.cnblogs.com/chenssy/p/3388487.html
咚咚鏘啦啦啦 提問者
舉報
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會Java面向?qū)ο缶幊痰膴W妙
1 回答方法內(nèi)部類在什么情況下使用
4 回答“Java 中的方法內(nèi)部類”到底什么情況下會使用?
2 回答匿名內(nèi)部類有什么用?什么情況用?
3 回答類型轉(zhuǎn)換在什么情況下會使用到啊???
1 回答內(nèi)部類的使用
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-05-22
?????為什么要使用內(nèi)部類?在《Think in java》中有這樣一句話:使用內(nèi)部類最吸引人的原因是:每個內(nèi)部類都能獨立地繼承一個(接口的)實現(xiàn),所以無論外圍類是否已經(jīng)繼承了某個(接口的)實現(xiàn),對于內(nèi)部類都沒有影響。
????? 在我們程序設計中有時候會存在一些使用接口很難解決的問題,這個時候我們可以利用內(nèi)部類提供的、可以繼承多個具體的或者抽象的類的能力來解決這些程序設計問題??梢赃@樣說,接口只是解決了部分問題,而內(nèi)部類使得多重繼承的解決方案變得更加完整。
????其實使用內(nèi)部類最大的優(yōu)點就在于它能夠非常好的解決多重繼承的問題,但是如果我們不需要解決多重繼承問題,那么我們自然可以使用其他的編碼方式,但是使用內(nèi)部類還能夠為我們帶來如下特性(摘自《Think in java》):
????? 1、內(nèi)部類可以用多個實例,每個實例都有自己的狀態(tài)信息,并且與其他外圍對象的信息相互獨立。
??????2、在單個外圍類中,可以讓多個內(nèi)部類以不同的方式實現(xiàn)同一個接口,或者繼承同一個類。
??????3、創(chuàng)建內(nèi)部類對象的時刻并不依賴于外圍類對象的創(chuàng)建。
??????4、內(nèi)部類并沒有令人迷惑的“is-a”關(guān)系,他就是一個獨立的實體。
??????5、內(nèi)部類提供了更好的封裝,除了該外圍類,其他類都不能訪問。
摘之博客:http://www.cnblogs.com/chenssy/p/3388487.html