欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解

 更新時(shí)間:2019年04月10日 08:36:20   作者:Kikityer  
今天小編就為大家分享一篇關(guān)于Java的外部類為什么不能使用private和protected進(jìn)行修飾的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

Java的外部類為什么不能使用private和protected進(jìn)行修飾

對(duì)于這個(gè)問(wèn)題,一直沒(méi)有仔細(xì)思考,今天整理一下:

對(duì)于頂級(jí)類(外部類)來(lái)說(shuō),只有兩種修飾符:public和默認(rèn)(default)。因?yàn)橥獠款惖纳弦粏卧前?,所以外部類只有兩個(gè)作用域:同包,任何位置。因此,只需要兩種控制權(quán)限:包控制權(quán)限和公開(kāi)訪問(wèn)權(quán)限,也就對(duì)應(yīng)兩種控制修飾符:public和默認(rèn)(default)。

如果類使用了private修飾符,說(shuō)明是個(gè)內(nèi)部類。內(nèi)部類的上一級(jí)是外部類,那么對(duì)應(yīng)的有四種訪問(wèn)控制修飾符:本類(private),同包(default),父子類(protected),任何位置(public)。當(dāng)一個(gè)內(nèi)部類使用了private修飾后,只能在該類的外部類內(nèi)部使用。

上面這些都是平時(shí)使用司空見(jiàn)慣的,但是為什么是這種情況呢?

可以想一下,一個(gè)java項(xiàng)目是不可能在一個(gè)class里面完成的。mvc模式中,是把類分為三層,一層層調(diào)用類。如果定義為私有的和受保護(hù)的就無(wú)法調(diào)用。換句話說(shuō),對(duì)于一個(gè)java文件,要么就是自己?jiǎn)为?dú)運(yùn)行,要么就是被其他程序作為庫(kù)調(diào)用,如果一個(gè)java文件的類被private修飾,那么是不是其他的程序或是類是無(wú)法使用它的,那么他作為一個(gè)單獨(dú)的文件就沒(méi)啥用了。如果它作為單個(gè)文件運(yùn)行,類加載怎么找到它呢,因?yàn)樗鼘?duì)外不可見(jiàn)。同時(shí),也失去了類的存在意義。因此,類只有public和默認(rèn)修飾符。

小結(jié)

1.類指外部類,最大的類,修飾符有public(表示該類在項(xiàng)目所有類中可以被導(dǎo)入),default(該類只能在同一個(gè)package中使用),abstract,final

2.內(nèi)部類指位于類內(nèi)部但不包括位于塊、構(gòu)造器、方法內(nèi),且有名稱的類,修飾符有public,private,protected訪問(wèn)控制符,也可以用static,final關(guān)鍵字修飾,public和private比較簡(jiǎn)單,一個(gè)表示所有可以被所有類訪問(wèn),一個(gè)表示只能被自身訪問(wèn),protected修飾的成員類可以被同一個(gè)包中的類和子類訪問(wèn)。而default修飾的成員類只能被同一個(gè)包中的類訪問(wèn)。

3.局部?jī)?nèi)部類指位于塊、構(gòu)造器、方法內(nèi)的有名稱類,最多只能有final修飾

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • SpringCloud之監(jiān)控?cái)?shù)據(jù)聚合Turbine的實(shí)現(xiàn)

    SpringCloud之監(jiān)控?cái)?shù)據(jù)聚合Turbine的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud之監(jiān)控?cái)?shù)據(jù)聚合Turbine的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Springcloud-nacos實(shí)現(xiàn)配置和注冊(cè)中心的方法

    Springcloud-nacos實(shí)現(xiàn)配置和注冊(cè)中心的方法

    這篇文章主要介紹了Springcloud-nacos實(shí)現(xiàn)配置和注冊(cè)中心的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • java 中內(nèi)部類的實(shí)例詳解

    java 中內(nèi)部類的實(shí)例詳解

    這篇文章主要介紹了java 中內(nèi)部類的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • JavaWeb項(xiàng)目Servlet無(wú)法訪問(wèn)問(wèn)題解決

    JavaWeb項(xiàng)目Servlet無(wú)法訪問(wèn)問(wèn)題解決

    這篇文章主要介紹了JavaWeb項(xiàng)目Servlet無(wú)法訪問(wèn)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 淺析Java中的虛擬線程

    淺析Java中的虛擬線程

    在本篇文章中,小編將帶大家深入了解Java虛擬線程的原理、如何使用、使用的注意事項(xiàng)以及其他相似技術(shù)的差別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Spring?Data?Jpa返回自定義對(duì)象的3種方法實(shí)例

    Spring?Data?Jpa返回自定義對(duì)象的3種方法實(shí)例

    在使用Spring Data Jpa框架時(shí),根據(jù)業(yè)務(wù)需求我們通常需要進(jìn)行復(fù)雜的數(shù)據(jù)庫(kù)查詢,下面這篇文章主要給大家介紹了關(guān)于Spring?Data?Jpa返回自定義對(duì)象的3種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • mybatis if test 不為空字符串或null的解決

    mybatis if test 不為空字符串或null的解決

    這篇文章主要介紹了mybatis if test 不為空字符串或null的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 輕松掌握J(rèn)ava代理模式

    輕松掌握J(rèn)ava代理模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava代理模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java16新特性record類使用細(xì)節(jié)示例詳解

    Java16新特性record類使用細(xì)節(jié)示例詳解

    這篇文章主要為大家介紹了Java16新特性record類使用細(xì)節(jié)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • JavaSE實(shí)現(xiàn)猜拳游戲

    JavaSE實(shí)現(xiàn)猜拳游戲

    這篇文章主要為大家詳細(xì)介紹了JavaSE實(shí)現(xiàn)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01

最新評(píng)論