一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java訪問權限控制的重要性深入講解

Java訪問權限控制的重要性深入講解

2021-06-18 14:03沉默王二 Java教程

這篇文章主要給大家介紹了關于Java訪問權限控制的重要性的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

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

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

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

這篇文章主要介紹一下java的訪問權限控制。

01 訪問權限控制的重要性

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

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

在你最初的編程生涯中,不知道你是否創作過下面這樣“優秀”的代碼,就像程序清單1-1那樣。

程序清單1-1:

?
1
2
3
4
5
6
7
8
9
10
11
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());
 }
}

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

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

一場血淋漓的慘案啊!只因為java訪問權限控制的使用不當——該private的方法,結果失誤寫成了public——論訪問權限控制的重要性。

02 為什么需要訪問權限控制

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

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

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

對于這些寫得很差的代碼,我每次看見都想再修改一次,期待她更可讀、更易理解、更具可維護性;但在美好的愿景下,也存在著巨大的壓力,因為有好多其他的地方引用了要修改的代碼,牽一發而動全身啊。

在變與不變的過程中,我發現——訪問權限控制真的太重要了。在寫代碼的過程中,我們需要盡量遵循這樣一個原則——除了那些必須public的方法,盡量把其他方法定義為private。這樣做的好處是,在重構private方法的時候不必再擔驚受怕,因為它們不會被類外部訪問到。

03 protected權限修飾符是用來干嘛的

我們知道,public權限修飾符使類的一切方法和屬性對外可見;private權限修飾符使類的一切方法和屬性只對內部可見;那么protected權限修飾符呢?

假如有一個叫王二的家伙,他有三個屬性,分別是私生活、外在形象和被保護的財產,就像程序清單3-1那樣。

程序清單3-1:

?
1
2
3
4
5
6
7
8
9
10
11
public class wanger {
 
 // 私生活
 private string life;
 
 // 外在形象
 public string image;
 
 // 被保護的財產
 protected string money;
}

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

程序清單3-2:

?
1
2
3
4
5
6
public class wangxiaoer extends wanger{
 @override
 public string tostring() {
  return "可以繼承的財產:" + money + ";塑造的人設:" + image + ";得不到的私生活:";
 }
}

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

注意到三個權限修飾符的區別了嗎?

protected可以保護王二的財產順利地繼承到王小二那里,外界的人是訪問不到的;public不安全,因為不僅王小二可以繼承訪問,外界其他人也可以訪問;private太私有化,不僅外界訪問不到,王小二也繼承不到。

04 總結

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

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/qing-gee/p/10042173.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩乱淫| 欧美久久综合网 | 韩国美女豪爽一级毛片 | 国产一级黄毛片 | 人人澡 人人澡碰人人看软件 | 国产精品国产香蕉在线观看网 | 调教女秘书 | 天天综合天天综合色在线 | 无码AV熟妇素人内射V在线 | 国产亚洲人成网站在线观看不卡 | 日本午夜大片免费观看视频 | 日本在线观看视频 | 69日本xxⅹxxxxx19 | 精品91一区二区三区 | 亚洲第一色视频 | 波多野结衣两女调教 | 久久 这里只精品 免费 | 色综合色狠狠天天久久婷婷基地 | 国产一卡2卡3卡4卡公司科普 | 国产精品亚洲专区一区 | 国产精品igao视频网网址 | 性一交一乱一伧老太 | 青草草视频在线观看 | yy6080午夜国产免费福利 | 俄罗斯引擎首页进入 | 亚洲国产精品成人午夜在线观看 | 楚乔传第二部免费观看全集完整版 | 脱了白丝校花的内裤猛烈进入 | 亚洲国产精品成人久久 | 韩国男女做性全过程视频 | 国产福利一区二区三区四区 | 无码乱人伦一区二区亚洲 | 亚洲国产cao | 男男同志gaysxxx| 国产欧美va欧美va香蕉在线观看 | 无码中文字幕av免费放 | 9总探花新品牛仔背带裤 | kk4444了欧美| 毛片网在线观看 | 无限在线观看视频大全免费高清 | 九九热在线视频 |