20170610基礎(chǔ)知識-面向?qū)ο?/h1>

Object Oriented ProgrammingOOP:面向?qū)ο蠹娌褂脤ο蟆㈩惿彻⒗^承佛呻、封裝、屬性病线、方法吓著、擴(kuò)展、協(xié)議等

1送挑、基本特性:封裝绑莺、繼承、多態(tài)

封裝:盡可能隱蔽對象內(nèi)容細(xì)節(jié)让虐,對外行程一個邊界紊撕,只保留有限的對外接口

繼承:特殊類具有一般類的全部屬性和方法,一般類(父類赡突、基類)对扶,特殊類(子類、派生類)

多態(tài):父類中定義的屬性惭缰、方法浪南,在被子類繼承后,可以使同一個屬性漱受、方法络凿,在父類、子類中昂羡,具有不同的含義

2阳仔、類、結(jié)構(gòu)體钧椰、枚舉寞缝,都是面向?qū)ο蟮臄?shù)據(jù)類型

3、枚舉

enum 枚舉名 { 枚舉的定義(一組成員的值和一組相關(guān)值) }

Swift中蛹批,枚舉的成員值默認(rèn)不是整數(shù)類型撰洗,成員值前面要加上case

使用枚舉成員賦值時,枚舉類型名.成員值

在switch中使用枚舉腐芍,case必須全面包含枚舉中的所有成員

枚舉原始值

enum 枚舉名:數(shù)據(jù)類型(字符差导、字符串、整數(shù)猪勇、浮點數(shù))

{? case 成員名 = 默認(rèn)值 ?}

將枚舉的成員值轉(zhuǎn)換為原始值:枚舉名.成員名.rawValue

將枚舉的原始值轉(zhuǎn)換為成員值:枚舉名(rawValue: 原始值)

枚舉相關(guān)值

enum Figure {

case Rectangle(Int, Int)

case Circle(Int)

}

對于Figure设褐,Rectangle和Circle是相關(guān)值,都是元組類型,對于一個特定的Figure實例络断,只能有一個相關(guān)值

為了從相關(guān)值中提取數(shù)據(jù)裁替,可以在元組字段前面加let或var,如果元組中字段類型一致并且需要全部提取貌笨,可以將let或var移到相關(guān)值前面

.Rectangle(let width, let height) ? ? let .Rectangle(width, height)

4弱判、結(jié)構(gòu)體、類

Swift中的結(jié)構(gòu)體锥惋,不近可以定義成員變量昌腰,還可以定義方法,是一種輕量級的類膀跌,結(jié)構(gòu)體不具有繼承性遭商,不能強(qiáng)制類型轉(zhuǎn)換、使用析構(gòu)函數(shù)捅伤、使用引用計等

class 類名 { 定義類的成員 }

struct 結(jié)構(gòu)體名 { 定義結(jié)構(gòu)體的成員 }

classEmployee {

varno:Int=0

varname:String=""

varjob:String?

varsalary:Double=0

vardept :Department? ?將結(jié)構(gòu)體和類關(guān)聯(lián)起來

}

structDepartment {

varno:Int=0

varname:String=""

}

實例化: let emp = Employee() ?var dept = Department()劫流,實例化后,會開辟內(nèi)存空間

類一般聲明為let丛忆,類是引用數(shù)據(jù)類型祠汇,let說明不能修改引用,但引用指向的對象可以修改

5熄诡、引用類型的比較 === ?!===可很,比較兩個引用是否為同一個實例,結(jié)構(gòu)體和枚舉都是值類型凰浮,但不能用== ?!=我抠,必須重載=== ?!==運算符,定義相等規(guī)則

6袜茧、運算符重載

定義一個重載運算符的函數(shù)菜拓,在需要執(zhí)行被重載的運算符時調(diào)用該函數(shù)

func==(lhs:Department, rhs:Department) ->Bool{

returnlhs.name==rhs.name&&lhs.no==rhs.no

}

func!=(lhs:Department, rhs:Department) ->Bool{

if(lhs.name !=rhs.name||lhs.no!=rhs.no) {

returntrue

}

returnfalse

}

7、類型嵌套笛厦,類纳鼎、結(jié)構(gòu)體、枚舉可以進(jìn)行嵌套递递,在某一個類型的{}內(nèi)部定義類

8喷橙、可選鏈:顯示拆包(?-!)替換為(?-?)啥么,就是可選鏈登舞,遇到nil不會拋出錯誤,會把nil返回給引用者

9悬荣、訪問限定

訪問范圍主要有兩個:模塊菠秒、源文件

模塊:指一個應(yīng)用程序或者一個框架,用import關(guān)鍵字引入

源文件:.swift文件,編譯之后被包含在應(yīng)用程序包或框架中践叠,一個源文件包含一個面向?qū)ο箢愋停愌早汀⒔Y(jié)構(gòu)體、枚舉)禁灼,這些類型中又包含函數(shù)管挟、屬性等

訪問級別:open、public弄捕、internal僻孝、fileprivate、private

open:無論在自己模塊內(nèi)部守谓,還是在其他模塊(import語句引入其他模塊)都可以被訪問

public:在同一個模塊中穿铆,與open完全一樣,在不同模塊時斋荞,public所聲明的類不能被繼承荞雏,public所聲明的屬性和方法不能被重寫

internal:默認(rèn)訪問限定,只能在自己模塊中被訪問

fileprivate:只能在當(dāng)前源文件中被訪問

private:只能在類型內(nèi)部被訪問

10平酿、訪問級別使用原則

①如果一個類型定義為internal凤优、private,那么類型聲明的變量或常量不能使用public

②函數(shù)的訪問級別染服,不能高于它的參數(shù)和返回類型的訪問級別

③元素類型訪問級別别洪,遵循字段最低級的訪問級別

④枚舉中成員的訪問級別繼承于該枚舉

11、類和結(jié)構(gòu)體的異同

相同:定義存儲屬性柳刮、定義方法挖垛、定義下標(biāo)、定義構(gòu)造函數(shù)秉颗、定義擴(kuò)展痢毒、實現(xiàn)協(xié)議

不同:只有類才能繼承、核對運行時對象的類型蚕甥、析構(gòu)對象釋放資源哪替、引用計數(shù)允許一個實例有多個引用

結(jié)構(gòu)體是值類型,每一個實例沒有獨一無二的標(biāo)識

類是引用類型菇怀,每一個實例都有獨一無二的標(biāo)識

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末凭舶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子爱沟,更是在濱河造成了極大的恐慌帅霜,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呼伸,死亡現(xiàn)場離奇詭異身冀,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門搂根,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珍促,“玉大人,你說我怎么就攤上這事剩愧≈硇穑” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵仁卷,是天一觀的道長沐悦。 經(jīng)常有香客問我,道長五督,這世上最難降的妖魔是什么藏否? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮充包,結(jié)果婚禮上副签,老公的妹妹穿的比我還像新娘。我一直安慰自己基矮,他們只是感情好淆储,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著家浇,像睡著了一般本砰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钢悲,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天点额,我揣著相機(jī)與錄音,去河邊找鬼莺琳。 笑死还棱,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惭等。 我是一名探鬼主播珍手,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼辞做!你這毒婦竟也來了琳要?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤秤茅,失蹤者是張志新(化名)和其女友劉穎稚补,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫂伞,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡孔厉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了帖努。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撰豺。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拼余,靈堂內(nèi)的尸體忽然破棺而出污桦,到底是詐尸還是另有隱情,我是刑警寧澤匙监,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布凡橱,位于F島的核電站,受9級特大地震影響亭姥,放射性物質(zhì)發(fā)生泄漏稼钩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一达罗、第九天 我趴在偏房一處隱蔽的房頂上張望坝撑。 院中可真熱鬧,春花似錦粮揉、人聲如沸巡李。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侨拦。三九已至,卻和暖如春辐宾,著一層夾襖步出監(jiān)牢的瞬間狱从,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工叠纹, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留矫夯,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓吊洼,卻偏偏與公主長得像训貌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冒窍,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

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