40 Swift中代碼訪問權限控制

Swift中的代碼訪問權限控制

模塊和源文件

  • 模塊指的是獨立的代碼分發(fā)單元唯咬,框架或應用程序會作為一個獨立的模塊來構(gòu)建和發(fā)布纱注。在Swift中,一個模塊可以使用import關鍵字導入另外一個模塊
  • 源文件就是Swift中的源代碼文件胆胰,它通常屬于一個模塊狞贱,即一個應用程序或者框架。盡管我們一般會將不同的類型分別定義在不同的源文件中蜀涨,但是同一個源文件也可以包含多個類型瞎嬉、函數(shù)之類的定義

訪問級別

image-20230313215119748.png

潛規(guī)則1

  • 如果一個類的訪問級別是fileprivate或private那么該類的所有成員都是fileprivate或private(此時成員無法修改訪問級別),如果一個類的訪問級別是open厚柳、internal或者public那么它的所有成員都是internal氧枣,類成員的訪問級別不能高于類的訪問級別(注意:嵌套類型的訪問級別也符合此條規(guī)則)

潛規(guī)則2

  • 常量、變量别垮、屬性便监、下標腳本訪問級別低于其所聲明的類型級別,并且如果不是默認訪問級別(internal)要明確聲明訪問級別(例如一個常量是一個private類型的類類型宰闰,那么此常量必須聲明為private或fileprivate)

潛規(guī)則3

  • 在不違反1茬贵、2兩條潛規(guī)則的情況下簿透,setter的訪問級別可以低于getter的訪問級別(例如一個屬性訪問級別是internal移袍,那么可以添加private(set)修飾將setter權限設置為private,在當前模塊中只有此源文件可以訪問老充,對外部是只讀的)

潛規(guī)則4

  • 必要構(gòu)造方法(required修飾)的訪問級別必須和類訪問級別相同葡盗,結(jié)構(gòu)體的默認逐一構(gòu)造函數(shù)的訪問級別不高于其成員的訪問級別(例如一個成員是private那么這個構(gòu)造函數(shù)就是private,但是可以通過自定義來聲明一個public的構(gòu)造函數(shù))啡浊,其他方法(包括其他構(gòu)造方法和普通方法)的訪問級別遵循潛規(guī)則1

怎樣創(chuàng)建一個模塊

image-20230313222916702.png
  • 這里新建一個模塊后觅够,創(chuàng)建一個Human類
image-20230313223130695.png

這里沒有導入Teacher

image-20230313223247227.png

如果在其他模塊想用Human,需要將Human的類用public修飾

image-20230313223432073.png

如果在外邊繼承Human, 也不行巷嚣,public等級不行

image-20230313223509766.png

這里需要將Human的等級修改為open

另外喘先,結(jié)構(gòu)體沒有open權限,結(jié)構(gòu)體只能用public

image-20230313223756749.png

如果父類是fileprivate, 那么子類也必須是

image-20230313224015596.png
image-20230313224146026.png

上面的錯誤是HumanSex是內(nèi)嵌類廷粒,并用private修飾窘拯,那么超出{}后, 則不能訪問

image-20230313224556371.png

如果屬性繼承于private坝茎,那么該屬性也必須聲明為private

image-20230313224738049.png
image-20230313224917097.png

注意此時涤姊,外部訪問不到age屬性

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嗤放,隨后出現(xiàn)的幾起案子思喊,更是在濱河造成了極大的恐慌,老刑警劉巖次酌,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恨课,死亡現(xiàn)場離奇詭異舆乔,居然都是意外死亡,警方通過查閱死者的電腦和手機庄呈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門蜕煌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诬留,你說我怎么就攤上這事斜纪。” “怎么了文兑?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵盒刚,是天一觀的道長。 經(jīng)常有香客問我绿贞,道長因块,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任籍铁,我火速辦了婚禮涡上,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拒名。我一直安慰自己吩愧,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布增显。 她就那樣靜靜地躺著雁佳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪同云。 梳的紋絲不亂的頭發(fā)上糖权,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音炸站,去河邊找鬼星澳。 笑死,一個胖子當著我的面吹牛旱易,可吹牛的內(nèi)容都是我干的禁偎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼咒唆,長吁一口氣:“原來是場噩夢啊……” “哼届垫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起全释,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤装处,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妄迁,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡寝蹈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了登淘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箫老。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖黔州,靈堂內(nèi)的尸體忽然破棺而出耍鬓,到底是詐尸還是另有隱情,我是刑警寧澤流妻,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布牲蜀,位于F島的核電站,受9級特大地震影響绅这,放射性物質(zhì)發(fā)生泄漏涣达。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一证薇、第九天 我趴在偏房一處隱蔽的房頂上張望度苔。 院中可真熱鬧,春花似錦浑度、人聲如沸寇窑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疗认。三九已至完残,卻和暖如春伏钠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谨设。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工熟掂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扎拣。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓赴肚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親二蓝。 傳聞我的和親對象是個殘疾皇子誉券,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容