Swift 基礎學習 構造方法初印象

2021-07-10 10:02:58 字數 1891 閱讀 8943

/*

構造方法

(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 ...