亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java類成員訪問(wèn)權(quán)限控制知識(shí)總結(jié)

瀏覽:33日期:2022-09-02 15:29:20

一 前言

這篇文章是很基礎(chǔ)的一文,沒(méi)多大深度,對(duì)于開(kāi)發(fā)人員必然是熟練于心。本篇文章的主題是為什么java要設(shè)置類成員訪問(wèn)級(jí)別?其原因也很簡(jiǎn)單,就是為了面向?qū)ο蟮姆庋b特性;將類成員使用不同的訪問(wèn)級(jí)別控制,在數(shù)據(jù)封裝后,其他的類成員想要訪問(wèn)當(dāng)前類成員,就必須要有足夠的權(quán)限才能訪問(wèn);這樣做的目的就是我可以隨意修改不想讓其他類成員沒(méi)有權(quán)限訪問(wèn)的數(shù)據(jù),只要約定好相關(guān)的協(xié)議,不影響其他類成員訪問(wèn)即可;

二 權(quán)限修飾詞介紹

public 意指公有的意思,其修飾的成員權(quán)限最低,表示任何成員都可以訪問(wèn);注意點(diǎn)是一個(gè)java源文件中只能有一個(gè)類被聲明為public; defaut 默認(rèn)級(jí)別,成員沒(méi)有修飾符號(hào),在同一個(gè)包內(nèi)能被其他成員訪問(wèn); protected 受保護(hù)的意思;表示子類能夠繼承父類的方法;在同一個(gè)包內(nèi)被其修飾的成員,其子類能夠訪問(wèn);注意點(diǎn)是不可以修飾外部類; private 私有的意思;權(quán)限最高,表示只允許類內(nèi)部成員可以訪問(wèn);注意點(diǎn)是不可以修飾外部類;

修飾符 同一個(gè)類中 同一個(gè)包中的其他類 不同包的子類中 不同包的非子類中 public true true true true protected true true true default true true private true

三 具體實(shí)施

3.1 public

在com.youku1327.base.authority2 包中創(chuàng)建了一個(gè)星球類,有個(gè)成員是shine表示光線,對(duì)應(yīng)的getShine方法使用public修改,方法意思是獲得光線;

package com.youku1327.base.authority2;/** * @Author lsc * <p> 星球類 </p> */public class Planet { private String shine = '好耀眼'; public String getShine(){ return shine; }}

在 com.youku1327.base.authority1 包中創(chuàng)建類ZSZXZ, 使用import com.youku1327.base.authority2.Planet;導(dǎo)入 Planet星球類;在main方法中創(chuàng)建星球類,調(diào)用獲得光線的方法,得到輸出結(jié)果是 好耀眼;驗(yàn)證了public權(quán)限最低,不同包之間得非子類就可以訪問(wèn);

package com.youku1327.base.authority1;import com.youku1327.base.authority2.Planet;/** * @Author lsc * <p> </p> */public class ZSZXZ { public static void main(String[] args) { // 創(chuàng)建星球?qū)嶓w Planet planet = new Planet(); // 訪問(wèn)公有成員 String shine = planet.getShine(); // 好耀眼 System.out.println(shine); }}

將 星球類的getShine方法修飾符號(hào)改為 protected;

package com.youku1327.base.authority2;/** * @Author lsc * <p> 星球類 </p> */public class Planet { private String shine = '好耀眼'; protected String getShine(){ return shine; }}

在com.youku1327.base.authority1中創(chuàng)建Earth類繼承星球類Planet(初學(xué)者只要理解extends關(guān)鍵字表示繼承的意思),繼承的方法是 getShine方法,然后在主類中創(chuàng)建地球?qū)嵗{(diào)用getShine方法,實(shí)際上是調(diào)用 Planet的 getShine 方法(super.getShine(),super意指高級(jí),表示父類 );驗(yàn)證了不同包的子類可以調(diào)用父類被protected修飾的成員;

package com.youku1327.base.authority1;import com.youku1327.base.authority2.Planet;/** * @Author lsc * <p> 地球類</p> */public class Earth extends Planet { @Override protected String getShine() { // 調(diào)用了父類的getShine方法 return super.getShine(); }// 執(zhí)行前注釋掉ZSZXZ中的main方法 public static void main(String[] args) { // 創(chuàng)建地球 Earth earth = new Earth(); // 好耀眼 System.out.println(earth.getShine()); }}

在回去看看原來(lái)的ZSZXZ類的getShine發(fā)現(xiàn)報(bào)錯(cuò)了;驗(yàn)證了不同包的非子類,使用protected修飾無(wú)法訪問(wèn);

Java類成員訪問(wèn)權(quán)限控制知識(shí)總結(jié)

3.3 default

將 Planet 星球類 的 getShine 方法的修飾符去掉,代碼如下

package com.youku1327.base.authority2;/** * @Author lsc * <p> 星球類 </p> */public class Planet { private String shine = '好耀眼'; String getShine(){ return shine; }}

隨著發(fā)現(xiàn) 之前的地球類報(bào)錯(cuò)了,我們把整個(gè)地球類注釋掉;驗(yàn)證了default修飾的成員不能夸包訪問(wèn);

Java類成員訪問(wèn)權(quán)限控制知識(shí)總結(jié)

我們?cè)?Planet 的同級(jí)包下創(chuàng)建Moon類,調(diào)用 Planet的getShine方法,成功執(zhí)行;驗(yàn)證了default修飾的成員能在同一個(gè)包中被訪問(wèn);

package com.youku1327.base.authority2;/** * @Author lsc * <p> </p> */public class Moon { public static void main(String[] args) { // 創(chuàng)建星球?qū)嶓w Planet planet = new Planet(); // 訪問(wèn)公有成員 String shine = planet.getShine(); // 好耀眼 System.out.println(shine); }}

3.4 private

將 Planet 星球類 的 getShine 方法的修飾符改為private;

package com.youku1327.base.authority2;/** * @Author lsc * <p> 星球類 </p> */public class Planet { private String shine = '好耀眼'; private String getShine(){ return shine; }}

發(fā)現(xiàn) 之前的 的Moon類主方法中的getShine方法報(bào)錯(cuò)了,驗(yàn)證了private在同包不同類中不可以被訪問(wèn);getShine() 中可以使用 shine 字段,驗(yàn)證了同一個(gè)類中可以使用private修飾的成員;

private String shine = '好耀眼'; private String getShine(){ return shine; }}

發(fā)現(xiàn) 之前的 的Moon類主方法中的getShine方法報(bào)錯(cuò)了,驗(yàn)證了private在同包不同類中不可以被訪問(wèn);getShine() 中可以使用 shine 字段,驗(yàn)證了同一個(gè)類中可以使用private修飾的成員;

Java類成員訪問(wèn)權(quán)限控制知識(shí)總結(jié)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产精品日本一区二区在线播放 | 亚洲精品国产成人99久久 | 特大巨黑人吊性xxx视频 | 国产精品青草久久久久婷婷 | 在线看一区| 精品国产女同疯狂摩擦2 | 亚洲第一网站免费视频 | 欧美成人亚洲综合精品欧美激情 | 亚洲第一区第二区 | 免费看叼嘿视频 | 亚洲色图套图 | 国产高清视频网站 | 天天综合天天影视色香欲俱全 | 国产精品久久新婚兰兰 | 亚洲欧美午夜 | 亚洲精品成人久久久影院 | 黄色爱爱视频 | 免费精品久久久视频 | 国产毛片视频网站 | 黄污在线观看 | 99pao在线视频成精品 | 丝袜美腿秘书ol在线播放 | 久久精品国产亚洲麻豆小说 | 中国人黑人xxⅹ性猛 | 视频一区二区三区在线 | 思思久久q6热在精品国产 | 亚洲欧洲精品国产二码 | 黄色在线免费网站 | 亚洲网站免费观看 | 激情五月综合婷婷 | 免费又黄又硬又大爽日本 | 国产一毛片 | 毛片大全高清免费 | 国产级a爱做片免费观看 | 中文字幕制服 | 国语对白清晰好大好白 | 中国wwwxxx| 国产黄色三级 | 久久精品成人欧美大片免费 | 日本免费人成黄页网观看视频 | 香蕉视频黄网站 |