java的訪問(wèn)修飾符-創(chuàng)新互聯(lián)

一. Java中的訪問(wèn)修飾符

成都創(chuàng)新互聯(lián)公司基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺(tái)為眾多戶提供移動(dòng)服務(wù)器托管 四川大帶寬租用 成都機(jī)柜租用 成都服務(wù)器租用。

Java面向?qū)ο蟮幕舅枷胫皇欠庋b細(xì)節(jié)并且公開(kāi)接口。Java語(yǔ)言采用訪問(wèn)控制修飾符來(lái)控制類及類的方法和變量的訪問(wèn)權(quán)限,從而向使用者暴露接口,但隱藏實(shí)現(xiàn)細(xì)節(jié)。訪問(wèn)控制分為四種級(jí)別:
(1)public: 用public修飾的類、類屬變量及方法,包內(nèi)及包外的任何類(包括子類和普通類)均可以訪問(wèn);
(2)protected: 用protected修飾的類、類屬變量及方法,包內(nèi)的任何類及包外那些繼承了該類的子類才能訪問(wèn)(此處稍后解釋),protected重點(diǎn)突出繼承;
(3)default: 如果一個(gè)類、類屬變量及方法沒(méi)有用任何修飾符(即沒(méi)有用public、protected及private中任何一種修飾),則其訪問(wèn)權(quán)限為default(默認(rèn)訪問(wèn)權(quán)限)。默
認(rèn)訪問(wèn)權(quán)限的類、類屬變量及方法,包內(nèi)的任何類(包括繼承了此類的子類)都可以訪問(wèn)它,而對(duì)于包外的任何類都不能訪問(wèn)它(包括包外繼承了此類的子類)。default重點(diǎn)突出包;
(4)private: 用private修飾的類、類屬變量及方法,只有本類可以訪問(wèn),而包內(nèi)包
java的訪問(wèn)修飾符
綠色 代表可行 紅色 代表不可行
重要總結(jié):通過(guò)上面的分析,我們可以看到:

  1. public、private和protected對(duì)我們來(lái)說(shuō)沒(méi)有任何異議。
  2. 頂層類只能用public訪問(wèn)修飾符和default(默認(rèn))訪問(wèn)修飾符修飾,其中用默認(rèn)修飾符修飾的類(及沒(méi)有任何修飾符的類,如class B{})不能被其他包中的類繼承,這也說(shuō)明了default(默認(rèn))訪問(wèn)修飾符突出的是包權(quán)限
  3. protected:本人做了一次實(shí)驗(yàn),發(fā)現(xiàn)在不同包的子類中,new一個(gè)父類對(duì)象,并用該父類對(duì)象去訪問(wèn)父類中的用protected修飾的類屬變量和方法時(shí)不能訪問(wèn),而new一個(gè)子類對(duì)象時(shí),子類對(duì)象可以訪問(wèn)(說(shuō)明protected修飾的類可以被其他包中的類繼承)。也可以在子類重寫父類的方法中使用super關(guān)鍵字調(diào)用。這豈不是和上面表格中的總結(jié)(紅色對(duì)勾)沖突了?本人也是百思不得其解。最后在網(wǎng)上找到了一個(gè)相對(duì)比較認(rèn)可的解釋,如下:
    protected修飾符的修飾的成員變量和方法也稱為受保護(hù)的成員變量和方法, 受保護(hù)的成員變量和方法可以在本類或同一個(gè)包中的其它類(包括子類)中通過(guò)類的實(shí)例進(jìn)行訪問(wèn),也可以被同一個(gè)包中的類或不同包中的類繼承,但是不能在不同包中的其它類(包括子類)中通過(guò)類的實(shí)例進(jìn)行訪問(wèn)。
    4. 如果一個(gè)類使用public修飾,那該類的類名必須與他所在的源文件名相同。一個(gè).java源文件中有且只有一個(gè)public類,頂層類只能用public和默認(rèn)修飾符(即無(wú)修飾符)修飾;

  4. final修飾的類不能被繼承,沒(méi)有子類。
  5. abstract修飾的類不能被實(shí)例化,必須被子類繼承。類只要有一個(gè)抽象方法就必定是抽象類,但抽象類不一定要有抽象方法。
    最終總結(jié),就一句話:protected修飾符所修飾的類(這句話中指父類)屬成員變量和方法,只可以被子類訪問(wèn),而不管子類是不是和父類位于同一個(gè)包中。default修飾符所修飾的類屬成員變量和方法,只可被同一個(gè)包中的其他類訪問(wèn),而不管其他類是不是該類的子類。protected屬于子類限制修飾符,而default屬于包限制修飾符。
    默認(rèn)是default。
    沒(méi)有friendly,只有public、private、protected、default。
    默認(rèn)什么都不加,就是default(不用把default寫出來(lái))。
    意思就是只能由跟這個(gè)類在同一個(gè)包中的類來(lái)訪問(wèn),比private限制更少,但比protected限制更多。

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買多久送多久。

文章名稱:java的訪問(wèn)修飾符-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://muchs.cn/article18/dpshgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、ChatGPT、標(biāo)簽優(yōu)化、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)