最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java訪問(wèn)權(quán)限控制的重要性深入講解

 更新時(shí)間:2018年11月30日 15:28:51   作者:沉默王二  
這篇文章主要給大家介紹了關(guān)于Java訪問(wèn)權(quán)限控制的重要性的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

人在什么面前最容易失去抵抗力?

美色,算是一個(gè),比如說(shuō)西施的貢獻(xiàn)薄就是忍辱負(fù)重、以身報(bào)國(guó)、助越滅吳;金錢(qián),算是另外一個(gè),我們古人常說(shuō)“錢(qián)乃身外之物,生不帶來(lái)死不帶去”,但我們又都知道“有錢(qián)能使鬼推磨”。

除去美色和金錢(qián),我認(rèn)為還有一個(gè),就是讀者的認(rèn)可——“二哥,你的文章真的很棒,我特別喜歡。希望能多多更新Java基礎(chǔ)知識(shí),真的是受益良多,就好像是在讀王小波的散文,但又學(xué)了編程!”——你說(shuō),收到讀者這樣暖暖的評(píng)語(yǔ),還需要美色和金錢(qián)?“兩者皆可拋”嘛。

這篇文章主要介紹一下Java的訪問(wèn)權(quán)限控制。

01 訪問(wèn)權(quán)限控制的重要性

舒淇曾說(shuō)過(guò)這樣一句令人感到震撼后又虎軀一震的話:“我要把我曾經(jīng)脫下的衣服一件一件的穿回來(lái)!”如今,她做到了——通過(guò)自己的努力,不僅得到了觀眾的認(rèn)可,得了很多大獎(jiǎng),還收獲了幸福。盡管,真的是盡管,還有一些“憶往昔崢嶸歲月稠”的朋友在電腦硬盤(pán)的深處留存了一些舒淇早年的珍藏版照片。

我扯這個(gè)例子主要為了證明一句話——訪問(wèn)控制(或隱藏具體實(shí)現(xiàn))與“最初的實(shí)現(xiàn)并不恰當(dāng)”有關(guān)——如果舒淇當(dāng)初那些照片的權(quán)限不是那么公開(kāi)化的話,那現(xiàn)在就可以私自燒毀了;或者換一種出道方式;然而沒(méi)有如果了。

在你最初的編程生涯中,不知道你是否創(chuàng)作過(guò)下面這樣“優(yōu)秀”的代碼,就像程序清單1-1那樣。

程序清單1-1:

public class NiubiUtil {
 public static Date getNextDay() {
  long millis = 24 * 60 * 60 * 1000;
  try {
   Thread.sleep(millis);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  return new Date(System.currentTimeMillis());
 }
}

本來(lái)你這些代碼只是自己寫(xiě)著玩呢,誰(shuí)知道被一個(gè)叫小二哥的同事不經(jīng)考量地調(diào)用了。這一調(diào)用不要緊,小二哥的代碼真的活活地等了一整天——產(chǎn)品經(jīng)理小王老師某一天心血來(lái)潮非要測(cè)試小二哥的代碼,然后點(diǎn)了查看下一天的按鈕,程序真的在那靜靜地等著,直到下一天真的來(lái)臨。

后果是,小王老師為了安撫用戶們?cè)陝?dòng)的情緒把小二哥直接拉出去祭天了;你躲在角落里瑟瑟發(fā)抖,心里默默念叨了句話——“小二哥,你走好,兄弟真的對(duì)不住了”。

一場(chǎng)血淋漓的慘案?。≈灰?yàn)镴ava訪問(wèn)權(quán)限控制的使用不當(dāng)——該private的方法,結(jié)果失誤寫(xiě)成了public——論訪問(wèn)權(quán)限控制的重要性。

02 為什么需要訪問(wèn)權(quán)限控制

我已經(jīng)在Java編程的道路上混跡了多年,自然也寫(xiě)過(guò)無(wú)數(shù)曾經(jīng)看起來(lái)那么“優(yōu)秀”的代碼。隨著時(shí)間的推移,再回首過(guò)往的那些代碼時(shí),總有一種“這真的出自我手?”的疑問(wèn)。

這種疑問(wèn)包含兩層意思,一層是感慨真的寫(xiě)得好,就好像年老時(shí)的李白看見(jiàn)自己年少時(shí)寫(xiě)的《望廬山瀑布》:“日照香爐生紫煙,遙看瀑布掛前川;疑是銀河落九天,飛流直下三千尺?!薄獑?,老子年輕時(shí)寫(xiě)得也不賴啊。

另外一層是感慨真的寫(xiě)得差,比如說(shuō)程序清單1-1,往事不堪回首啊,只能都隨風(fēng),都隨風(fēng),都隨風(fēng)而去!

對(duì)于這些寫(xiě)得很差的代碼,我每次看見(jiàn)都想再修改一次,期待她更可讀、更易理解、更具可維護(hù)性;但在美好的愿景下,也存在著巨大的壓力,因?yàn)橛泻枚嗥渌牡胤揭昧艘薷牡拇a,牽一發(fā)而動(dòng)全身啊。

在變與不變的過(guò)程中,我發(fā)現(xiàn)——訪問(wèn)權(quán)限控制真的太重要了。在寫(xiě)代碼的過(guò)程中,我們需要盡量遵循這樣一個(gè)原則——除了那些必須public的方法,盡量把其他方法定義為private。這樣做的好處是,在重構(gòu)private方法的時(shí)候不必再擔(dān)驚受怕,因?yàn)樗鼈儾粫?huì)被類(lèi)外部訪問(wèn)到。

03 protected權(quán)限修飾符是用來(lái)干嘛的

我們知道,public權(quán)限修飾符使類(lèi)的一切方法和屬性對(duì)外可見(jiàn);private權(quán)限修飾符使類(lèi)的一切方法和屬性只對(duì)內(nèi)部可見(jiàn);那么protected權(quán)限修飾符呢?

假如有一個(gè)叫王二的家伙,他有三個(gè)屬性,分別是私生活、外在形象和被保護(hù)的財(cái)產(chǎn),就像程序清單3-1那樣。

程序清單3-1:

public class Wanger {

 // 私生活
 private String life;

 // 外在形象
 public String image;

 // 被保護(hù)的財(cái)產(chǎn)
 protected String money;
}

王二生了一個(gè)孩子叫王小二,就像程序清單3-2那樣。

程序清單3-2:

public class Wangxiaoer extends Wanger{
 @Override
 public String toString() {
  return "可以繼承的財(cái)產(chǎn):" + money + ";塑造的人設(shè):" + image + ";得不到的私生活:";
 }
}

王小二可以繼承到王二的財(cái)產(chǎn)money(據(jù)說(shuō)王二在王小二出生的第一個(gè)月為其存了100,以后每個(gè)月的利率為12%,現(xiàn)在存款是3758.17,你知道王小二現(xiàn)在多大了嗎?),也可以模仿一點(diǎn)父親的外在形象image,但卻不能按照父親的私生活方式生活。

注意到三個(gè)權(quán)限修飾符的區(qū)別了嗎?

protected可以保護(hù)王二的財(cái)產(chǎn)順利地繼承到王小二那里,外界的人是訪問(wèn)不到的;public不安全,因?yàn)椴粌H王小二可以繼承訪問(wèn),外界其他人也可以訪問(wèn);private太私有化,不僅外界訪問(wèn)不到,王小二也繼承不到。

04 總結(jié)

訪問(wèn)權(quán)限控制的兩個(gè)重要作用:第一是為了防止外界觸碰到不該觸碰的地方(private修飾的成員變量或者方法);第二是讓類(lèi)的設(shè)計(jì)者可以更改內(nèi)部(private修飾的成員變量或者方法)的工作方式,而不必?fù)?dān)心有沒(méi)有對(duì)外界造成干擾。

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁(yè)數(shù)據(jù)的實(shí)例

    Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁(yè)數(shù)據(jù)的實(shí)例

    本文主要介紹了Selenium+Tesseract-OCR智能識(shí)別驗(yàn)證碼爬取網(wǎng)頁(yè)數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • java讀取excel表格的方法

    java讀取excel表格的方法

    這篇文章主要為大家詳細(xì)介紹了java讀取excel表格的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 教你用JDK編譯Java文件的方法

    教你用JDK編譯Java文件的方法

    這篇文章主要介紹了教你用JDK編譯Java文件的方法,分步驟給大家介紹了設(shè)置環(huán)境變量的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • 詳解Java分布式系統(tǒng)中一致性哈希算法

    詳解Java分布式系統(tǒng)中一致性哈希算法

    這篇文章主要介紹了Java分布式系統(tǒng)中一致性哈希算法,對(duì)算法感興趣的同學(xué),可以參考下
    2021-04-04
  • springboot中使用redis并且執(zhí)行調(diào)試lua腳本

    springboot中使用redis并且執(zhí)行調(diào)試lua腳本

    今天有個(gè)項(xiàng)目需要使用redis,并且有使用腳本的需求,本文主要介紹了springboot中使用redis并且執(zhí)行調(diào)試lua腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Java中如何使用?byte?數(shù)組作為?Map?的?key

    Java中如何使用?byte?數(shù)組作為?Map?的?key

    本文將討論在使用HashMap時(shí),當(dāng)byte數(shù)組作為key時(shí)所遇到的問(wèn)題及其解決方案,介紹使用String和List這兩種數(shù)據(jù)結(jié)構(gòu)作為臨時(shí)解決方案的方法,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • java 使用Scanner類(lèi)接收從控制臺(tái)輸入的數(shù)據(jù)方式

    java 使用Scanner類(lèi)接收從控制臺(tái)輸入的數(shù)據(jù)方式

    這篇文章主要介紹了java 使用Scanner類(lèi)接收從控制臺(tái)輸入的數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn)

    SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn)

    這篇文章主要介紹了SpringMVC MethodArgumentResolver的作用與實(shí)現(xiàn),MethodArgumentResolver采用一種策略模式,在Handler的方法被調(diào)用前,Spring MVC會(huì)自動(dòng)將HTTP請(qǐng)求中的參數(shù)轉(zhuǎn)換成方法參數(shù)
    2023-04-04
  • Java類(lèi)加載器層次結(jié)構(gòu)原理解析

    Java類(lèi)加載器層次結(jié)構(gòu)原理解析

    這篇文章主要介紹了Java類(lèi)加載器層次結(jié)構(gòu)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • springMVC返回Http響應(yīng)的實(shí)現(xiàn)

    springMVC返回Http響應(yīng)的實(shí)現(xiàn)

    本文主要介紹了在Spring Boot中使用@Controller、@ResponseBody和@RestController注解進(jìn)行HTTP響應(yīng)返回的方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03

最新評(píng)論

大同市| 桂平市| 潮州市| 兰州市| 阿克| 吉林省| 加查县| 吉水县| 安塞县| 合山市| 福州市| 江阴市| 兰州市| 汉沽区| 广东省| 宁安市| 鸡西市| 郎溪县| 武威市| 博爱县| 平顺县| 宿州市| 阿坝县| 蓝田县| 顺平县| 金华市| 长岛县| 肥乡县| 海口市| 缙云县| 仙游县| 志丹县| 宜阳县| 莒南县| 广德县| 灵石县| 安塞县| 松江区| 阿坝| 太谷县| 忻城县|