指定构造方法,
便利构造方法,构造方法嵌套convenience
构造方法继承,
构造方法安全性检查4原则,
可失败构造方法,
必要构造方法
构造方法
class Student {
var num:Int? // 可选值属性可以不在构造方法中设置初值,创建对象后默认值 = nil
init(name:String) {
}
convenience init() {// 一个类可以有多个构造方法,并且嵌套使用,嵌套使用时需要加入convenience关键字
self.init(name: "abc")
}
}
struct School {
var namr:String = ""
}
var s = School(namr: "abc")// 结构体会默认生成一个对应的构造方法
指定构造方法:不需要convenience关键字修饰的init
便利构造方法:需要convenience关键字修饰,内部调用指定构造方法
指定构造方法与便利构造方法在继承关系中的展现:默认子类继承父类所有指定、便利构造方法。如果子类重写了指定构造方法,那么父类中的便利构造方法将无法继承
重载和覆写的区别,重载是同名但不同参数,覆写是同名同参数但改实现
构造方法的安全性检查,便利构造方法要修改属性的值要在init后
class Student:People {
var name:String
override init(parama: String) {
name = "abc" // 初始化属性不要用self,因为可能没有值
super.init(parama: "d")
key = "aaa" //调用父类的指定构造方法后才能给父类属性赋值
self.name = "k"// 调用父类指定构造方法后self才算初始化完成,可以调用self
}
}
可失败构造方法和必要构造方法
class People {
var name = {
return "key"
}() // 通过闭包给存储赋值
var key = {
return "key"
}// 只读的计算属性
required init (name:String){ // 必要构造方法
print(name)
}
init?(parama:Bool) { // 可失败构造方法,返回可选值
guard parama else {
return nil
}
}
}
析构方法:
关键字:deinit
常用于:在类实例将要销毁的时候将其中用到的资源释放掉,如关闭文件等操作都会放入析构方法中进行
触发条件:对象 = nil 或者 对象被销毁
网友评论