亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

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

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

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

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

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

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

在你最初的編程生涯中,不知道你是否創(chuàng)作過下面這樣“優(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());
 }
}

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

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

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

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

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

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

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

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

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

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

我們知道,public權(quán)限修飾符使類的一切方法和屬性對外可見;private權(quán)限修飾符使類的一切方法和屬性只對內(nèi)部可見;那么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ù)說王二在王小二出生的第一個(gè)月為其存了100,以后每個(gè)月的利率為12%,現(xiàn)在存款是3758.17,你知道王小二現(xiàn)在多大了嗎?),也可以模仿一點(diǎn)父親的外在形象image,但卻不能按照父親的私生活方式生活。

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

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

04 總結(jié)

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

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

相關(guān)文章

  • mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題

    mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題

    這篇文章主要介紹了mybatisplus?selectOne查詢,有數(shù)據(jù),但返回為null問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Tomcat?8.5?+mysql?5.7+jdk1.8開發(fā)JavaSE的金牌榜小項(xiàng)目

    Tomcat?8.5?+mysql?5.7+jdk1.8開發(fā)JavaSE的金牌榜小項(xiàng)目

    這篇文章主要介紹了Tomcat?8.5?+mysql?5.7+jdk1.8開發(fā)JavaSE的金牌榜小項(xiàng)目,本文通過圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Java實(shí)現(xiàn)替換PDF中的字體功能

    Java實(shí)現(xiàn)替換PDF中的字體功能

    文檔中可通過應(yīng)用不同的字體來呈現(xiàn)不一樣的視覺效果,通過字體來實(shí)現(xiàn)文檔布局、排版等設(shè)計(jì)需要。本文將詳細(xì)為大家介紹如何利用Java實(shí)現(xiàn)替換PDF文中的字體,需要的可以參考一下
    2022-03-03
  • java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停)

    java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停)

    這篇文章主要介紹了java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • 在SpringBoot下讀取自定義properties配置文件的方法

    在SpringBoot下讀取自定義properties配置文件的方法

    這篇文章主要介紹了在SpringBoot下讀取自定義properties配置文件的方法,文中涉及到了Spring-boot中讀取config配置文件的兩種方式,需要的朋友可以參考下
    2017-12-12
  • Spring Boot配置讀取實(shí)現(xiàn)方法解析

    Spring Boot配置讀取實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Spring Boot配置讀取實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問題

    解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問題

    這篇文章主要介紹了解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Spring中的refresh方法分析

    Spring中的refresh方法分析

    這篇文章主要介紹了Spring中的refresh方法分析,文章圍繞主題展開詳細(xì)的refresh方法相關(guān)資料介紹,需要的小伙伴可以參考一下
    2022-05-05
  • Springboot 讀取自定義pro文件注入static靜態(tài)變量方式

    Springboot 讀取自定義pro文件注入static靜態(tài)變量方式

    這篇文章主要介紹了Springboot 讀取自定義pro文件注入static靜態(tài)變量方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓的方法

    java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓的方法

    這篇文章主要介紹了java實(shí)現(xiàn)稀疏矩陣的壓縮與解壓 ,把該稀疏矩陣壓縮以三元組形式表示并以文件形式保存,再寫另一個(gè)程序讀取文件中的信息把壓縮后的三元組還原成原來的稀疏矩陣,需要的朋友可以參考下
    2022-03-03

最新評論