可以定義列舉,結構體,類,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 ...