Swift學習筆記 物件導向

2021-07-03 01:37:19 字數 2467 閱讀 9091

可以定義列舉,結構體,類,3種物件導向的型別,物件導向的兩大核心是類和物件

//2.物件導向程式設計的3大特徵,封裝,繼承(swift使用協議彌補了單繼承靈活性不足的缺點),多型

語言中結構體和列舉不具有物件導向的特徵,swift中多了結構體和列舉這兩種程式單元

//1.列舉

//swift的列舉不像c那麼簡單,是完全重新定義的型別,支援計算屬性,例項方法,型別方法,支援定義構造器來完成初始化,允許通過擴充套件來增強原有列舉的功能,允許遵守指定協議來提供標準的功能

定義列舉,使用enum

//語法格式,列舉名首字母大寫

/*** enum 列舉名

*/enum people

enum strongpeople

/*** 物件導向程式設計的五大點(牢記)

1,宣告變數

2.建立例項

3,訪問型別屬性

4呼叫型別方法

5,派生子類,但是swift只有類支援繼承,列舉和結構體不支援繼承

*///使用列舉宣告變數

var manpeople :strongpeople

//賦值

manpeople = strongpeople.man

//當swift能推斷出列舉型別時,允許省略列舉名字首

//manpeople = .man

println(manpeople)

列舉值和switch語句

var choosepeople = strongpeople.man

//使用switch語句判斷列舉

//是個男的

switch (choosepeople)

//帶有原始值的列舉

//需要注意的是,swift可以通過已指定的原始的列舉來推斷它前後的列舉值

/*** enum 列舉名 : 原始型別

*///定義列舉,原始值型別為int

enum weekday : int

//如果指定的原始值型別不是int,而是string,character,swift不能推斷列舉的原始值

enum season : character

var day = weekday.monday

//獲取列舉值的原始值

println("\(day.rawvalue)")//0

day = .thursday

println("\(day.rawvalue)")//6

//根據原始值獲取列舉值

//is u

var mysea = season(rawvalue: "s")

if mysea != nil

}//rawvalue是列舉值的屬性,該屬性用於獲取列舉的原始值

//關聯值,swift不要求各列舉成員具有相同的關聯值 associated value

/*** 語法格式

case 列舉值(元組語法)

*///定義列舉

enum plant

//引用型別的比較

//===,!==返回true,false

//self關鍵字

class

dog1

//實現乙個跑的方法

func run()

}//區域性變數隱藏儲存屬性

class

wolf

//定義乙個info

func info()

}var wolf = wolf(name:"jiangjum", age: 24)

wolf.info()//jiangjum,24

//當self作為方法的呼叫者

class

returnself

}var rt = returnself()

rt.grow()

.grow()

.grow()

println("\(rt.age)")//3

struct fixedlengthrange

//初始化

var rg = fixedlengthrange(strat: 2, length: 3)

println("\(rg.strat),\(rg.length)")

rg.strat = 5

= 6//常量儲存屬性,無法重新賦值

struct fkrange

let rg1 = fkrange(start: 3, length: 4)

println("\(rg1.start),\(rg1.length)")//3,4

= 4//編譯錯誤

//由於例項被賦值給乙個let宣告的常量,因此fkrange就是乙個不可變的,不允許修改

//lazy load 懶載入

class

dept3

}class

user

//建立user例項

var user = user()

println(user.nicks)

Swift學習筆記 物件導向(2)

定義計算屬性 修飾符 var 計算屬性名 屬性型別 set 形參名 1,修飾符可省略 2.var 只能定義成變數,因此只能使用var 使用列舉定義乙個計算屬性 enum season set set newvalue var s season.spring 正在執行getter方法 春暖花開 pri...

Swift學習4 物件導向

一 類與物件 對於swift的類的構建和一般物件導向語言類似也是class關鍵字宣告,示例如下 class hello 上面建立了乙個hello類,包含了乙個sayhello方法。我們可以通過下面的 來呼叫方法。var hello hello hello.sayhello 輸出 hello 二 構造...

swift物件導向詳解

swift的物件導向 主要包括如何建立類,建立和使用類方法,類的繼承,類的擴充套件,如何使用介面及協議 命名空間 在同乙個類,在不同的類 main.swift swiftobjectfromjike created by ytdxxt on 14 12 11.import foundation 1 ...