/*
構造方法
(1)構造方法初步
(2)預設構造方法
(3)結構體的構造方法
(4)可選值屬性與構造方法
(5)常量屬性和構造方法
(6)**構造器
*//*
(1)構造方法初步
構造方法的主要作用:例項物件的內容的初始化
swift要求類或者結構體中的儲存屬性在物件構造完畢後要有初
始值.構造方法的語法:
init(引數列表)
*/class mypoint
// //構造方法的語法
// init()
}//構造乙個物件:(1)給物件分配記憶體(2)初始化這塊記憶體(構造方法)
var p0 = mypoint()
p0.description()//顯示呼叫
/*(2)帶有預設值得構造方法
構造乙個物件之後,要求物件中的所有非lazy的儲存屬性必須
有初始值
*/class mypoint1
//構造方法的語法
init() }/*
(3)帶有引數的構造方法
*/class mypoint2
//構造方法的內部引數預設也作為外部引數
init(_ x: int, y: int)
}var p2 = mypoint2(4, y: 2)
p2.description()
/*(4)常量存數屬性與構造方法
常量儲存屬性只能在構造方法中被修改,其他任何時候都不可以修改
*/class human
}var person = human(name: "zhangsan", age: 32)
person.age =
34/*
(5)可選屬性與構造方法
*/class creditcard
}//可選值儲存屬性可以在構造方法中不進行初始化, 預設為nil
class human1 }/*
(6)結構體的構造方法總結
*/struct rect
}//針對結構體,系統會提供乙個成員逐一構造器
var rect = rect(width: 0.0, height: 0.0)
/*(7)值型別的構造器原理
直觀一點兒就是"構造方法之間的相互呼叫"
構造方法可以呼叫其他構造方法來完成例項的構造,稱之為構造
器** 好處:減少構造方法之間的**重複
*/struct segment
init()
init(origin: double, length: double)
func description() ->
string
}var seg0 = segment(origin: 0.0, end: 0.0)
var seg1 = segment()
var seg2 = segment(origin: 0.0, length: 10.0)
/*(8)閉包或者全域性函式設定儲存屬性的預設值
*/func getvalue() -> int
class testclass ()
//y是計算屬性
var y: int
//通過全域性函式來設定預設值
// var z: int = getvalue()
//或者通過類方法類設定預設值
var z: int = testclass.classgetvalue()
init()
class func classgetvalue() -> int
}var obj = testclass()
//print(obj.x)
swift構造方法
class human 預設構造 init name string 結構體逐一成員構造方法是結構體特有的,類是沒有這個構造方法的。struct size 列舉型別的構造方法.列舉是不能通過型別來隱式呼叫構造方法的,只有給列舉定義了構造方法,才可以讓列舉像類或者結構體那樣構造物件。enum color...
Swift 基礎學習 例項方法
方法 1 例項方法 2 方法的引數名稱 3 例項方法中隱藏的self 4 mutating方法 5 類方法 6 下標指令碼語法 7 單索引值下標指令碼 8 多索引值下標指令碼 1 例項方法 class mypoint func setx x double,y double func show var...
關於swift構造方法
switf 中如果遇到這樣的錯,大概錯誤就是,必須要呼叫父類的構造方法 可是呢,呼叫了super.init 不就是呼叫了構造方法了嗎?結果上去一查,結果一名外國大神 therefore what you ll do is callinit nibname bundle and since this ...