java內(nèi)部類的最詳細(xì)詳解
1、成員內(nèi)部類
內(nèi)部類與外部類的關(guān)系
a.成員內(nèi)部類的創(chuàng)建需要依賴于外部類對(duì)象-(成員方法必須通過(guò)對(duì)象調(diào)用),在沒(méi)有外部類實(shí)例之前無(wú)法創(chuàng)建成員內(nèi)部類對(duì)象
b.內(nèi)部類與外部類相對(duì)獨(dú)立,不是is a 的關(guān)系(發(fā)動(dòng)機(jī)-汽車)
c.私有屬性的互相訪問(wèn),內(nèi)部類可以直接訪問(wèn)外部類,而外部類訪問(wèn)內(nèi)部類需要內(nèi)部類的對(duì)象來(lái)訪問(wèn)
d.創(chuàng)建內(nèi)部類的語(yǔ)法
1.在外部類內(nèi)部創(chuàng)建內(nèi)部類對(duì)象(Inner inner = new Inner())
2.在外部類外部創(chuàng)建內(nèi)部類對(duì)象,外部類.內(nèi)部類 inner = new Outter().new Inner();
e.在內(nèi)部類內(nèi)部使用隱藏的外部類對(duì)象(隱藏的this)
成員內(nèi)部類:類比成員方法,不能擁有靜態(tài)域但是可以訪問(wèn)外部類的靜態(tài)域
2、靜態(tài)內(nèi)部類
定義在外部類的內(nèi)部,使用static修飾,類比靜態(tài)方法,靜態(tài)內(nèi)部類不需要外部類對(duì)象產(chǎn)生就能使用,不能訪問(wèn)外部類的成員域,但能訪問(wèn)靜態(tài)域
靜態(tài)內(nèi)部類的創(chuàng)建語(yǔ)法:
1.外部類內(nèi)部:與成員內(nèi)部類一樣
2.外部類外部:StaticInnerClass.Inner inner = new StaticInnerClass.Inner();
3、方法內(nèi)部類
定義在方法內(nèi)部:類比局部變量
a.對(duì)外部完全隱藏,因此方法內(nèi)部類不能有任何訪問(wèn)修飾符
b.方法內(nèi)部類沒(méi)有訪問(wèn)形參是,這個(gè)形參是可以在方法中隨意修改的,一旦方法內(nèi)部類中使用了形參,這個(gè)形參必須被聲明為final。
4、匿名內(nèi)部類
a.必須繼承一個(gè)抽象類或者實(shí)現(xiàn)一個(gè)接口
b.沒(méi)有構(gòu)造方法
總結(jié)
到此這篇關(guān)于java內(nèi)部類的文章就介紹到這了,更多相關(guān)java內(nèi)部類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring cloud gateway 限流的實(shí)現(xiàn)與原理
這篇文章主要介紹了spring cloud gateway 限流的實(shí)現(xiàn)與原理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12Spring MVC中使用Controller如何進(jìn)行重定向
這篇文章主要介紹了Spring MVC中使用Controller如何進(jìn)行重定向操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09簡(jiǎn)單介紹Java?方法的重載、可變參數(shù)、作用域
這篇文章主要簡(jiǎn)單介紹Java?方法的重載、可變參數(shù)、作用域的相關(guān)資料,需要的朋友可以參考下2023-07-07解決SpringMVC Controller 接收頁(yè)面?zhèn)鬟f的中文參數(shù)出現(xiàn)亂碼的問(wèn)題
下面小編就為大家分享一篇解決SpringMVC Controller 接收頁(yè)面?zhèn)鬟f的中文參數(shù)出現(xiàn)亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03