国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

淺析Java 語言中訪問控制權(quán)限protected的使用

2017-11-17 20:22:13高琦
電腦知識(shí)與技術(shù) 2017年30期
關(guān)鍵詞:Java程序設(shè)計(jì)訪問控制

高琦

摘要:Java中的訪問控制修飾符實(shí)現(xiàn)了對(duì)類的封裝,其中較復(fù)雜的情況筆者一直沒有系統(tǒng)、全面的研究。該文結(jié)合筆者在Java語言教學(xué)中的經(jīng)驗(yàn),針對(duì)Java語言中訪問控制修飾符protected的使用規(guī)則進(jìn)行分析,希望讀者讀完后能有所收獲。

關(guān)鍵詞:Java程序設(shè)計(jì);訪問控制;權(quán)限;protected

中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)30-0103-01

Java語言是一門面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,既集中了C++語言的優(yōu)點(diǎn),又將C++中難以理解的多繼承、指針等概念摒棄,這就決定了Java語言強(qiáng)大的功能性和簡單易用的實(shí)用性。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程[1]。

面向?qū)ο蠹夹g(shù)的基本特征是封裝性,這樣可以限制類的外部成員對(duì)類的內(nèi)部成員進(jìn)行訪問,只有通過公共接口才能訪問類的成員數(shù)據(jù),即把類創(chuàng)建成一個(gè)“黑盒子”,雖然可以使用這個(gè)類,但是類內(nèi)部機(jī)制是不公開的,也不能隨意被修改。在Java語言中的封裝是通過訪問控制實(shí)現(xiàn)的,而訪問控制的實(shí)現(xiàn)是通過4個(gè)訪問修飾符實(shí)現(xiàn)的:public(公共)、protected(保護(hù))、缺?。ò鼨?quán)限)、private。

在Java語言中,類和類成員有不同的訪問控制權(quán)限,針對(duì)類成員,可以用上述四種控制權(quán)限修飾類的成員變量和方法,這四個(gè)訪問修飾符對(duì)應(yīng)類成員的可見度如表1:

由表中的數(shù)據(jù)可以看出,Java語言中如果要跨包訪問類成員,只有protected和public這兩個(gè)權(quán)限修飾符修飾的類成員能夠?qū)崿F(xiàn),其中,表中對(duì)protected修飾符的權(quán)限定義是可以被同一類、同一包以及不同包中子類的對(duì)象訪問,筆者通過查閱大量資料,發(fā)現(xiàn)所有對(duì)protected修飾符跨包訪問權(quán)限的說明都是針對(duì)不同包中的子類,這樣可以理解成在跨包訪問該類時(shí),只要是其子類,都可以訪問該類中protected權(quán)限的類成員,但是經(jīng)過大量的測(cè)試實(shí)驗(yàn)證明,并非所有跨包子類都可以訪問其父類的protected成員:

在Java工程中創(chuàng)建兩個(gè)包:cn.btmc.jc和cn.btmc.jc1,在cn.btmc.jc中創(chuàng)建公有類Person(代碼如圖2所示),將其導(dǎo)入cn.btmc.jc1包中;在cn.btmc.jc1包中創(chuàng)建Person類的缺省子類Student以及公有子類Tes1(代碼如圖3所示),在Tes1的主方法中分別實(shí)例化Tes1與Student的對(duì)象t、s,按照表中數(shù)據(jù)的顯示,用對(duì)象t與s分別訪問其父類Person中的protected權(quán)限成員變量name時(shí),都是被允許的,但是在圖3中可以看到,缺省子類Student的對(duì)象s訪問其父類protected權(quán)限成員變量name時(shí)被拒絕,只有公有子類Tes1的對(duì)象t被允許訪問。

由此,可以看出,Java語言中,當(dāng)子類跨包訪問其父類protected權(quán)限的成員時(shí),只有公有子類的對(duì)象被允許訪問,非公有子類并沒有訪問權(quán)。

在筆者所查閱的資料中,針對(duì)Java語言中protected修飾權(quán)限的不同包的訪問控制均寫為:不同包的子類,通過以上的測(cè)試,筆者認(rèn)為這一權(quán)限寫為:不同包中的公有子類更為貼切。

參考文獻(xiàn):

[1] 李剛.瘋狂Java講義[M].2版.北京: 電子工業(yè)出版社, 2014.endprint

猜你喜歡
Java程序設(shè)計(jì)訪問控制
ONVIF的全新主張:一致性及最訪問控制的Profile A
“互聯(lián)網(wǎng)+”背景下基于翻轉(zhuǎn)課堂教學(xué)模式的程序設(shè)計(jì)課程改革
《Java程序設(shè)計(jì)》項(xiàng)目化教學(xué)改革與實(shí)踐
《Java程序設(shè)計(jì)》課程網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
Java程序設(shè)計(jì)基礎(chǔ)課實(shí)踐教學(xué)中的分層教學(xué)模式研究
基于實(shí)訓(xùn)項(xiàng)目的Java程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)模式改革與實(shí)踐
基于工程思維的Java程序設(shè)計(jì)課程教學(xué)研究
動(dòng)態(tài)自適應(yīng)訪問控制模型
淺析云計(jì)算環(huán)境下等級(jí)保護(hù)訪問控制測(cè)評(píng)技術(shù)
大數(shù)據(jù)平臺(tái)訪問控制方法的設(shè)計(jì)與實(shí)現(xiàn)
冕宁县| 黄陵县| 田东县| 文水县| 手游| 南木林县| 两当县| 陆良县| 上高县| 丰宁| 海盐县| 博湖县| 扎兰屯市| 保靖县| 梁河县| 高淳县| 墨脱县| 贵港市| 汉寿县| 德兴市| 太和县| 微博| 祁连县| 孟连| 南江县| 贺州市| 利津县| 克什克腾旗| 青阳县| 应用必备| 巴青县| 淮阳县| 肃北| 龙岩市| 石屏县| 福安市| 龙川县| 安丘市| 井冈山市| 繁昌县| 陈巴尔虎旗|