美文网首页
Swift class类的初始化

Swift class类的初始化

作者: yyggzc521 | 来源:发表于2021-11-21 11:06 被阅读0次

类的初始化规则

类的初始化规则

1. 无父类,有默认值

class Person {
    var name :String?
    var age :Int=0
}

所有属性都有默认值时,可以有类的初始化方法,也可以不实现类的初始化方法。
当不实现类的初始化方法时,编译器会提供默认的初始化方法,构造生成的实例的每个属性的值都为默认值。

2. 无父类,无默认值

class Person {
    var name : String
    var age : Int
    
    init () {
        name = ""
        age = 0
    }
}

必须实现指定的构造方法

3. 有父类,无初始值

class Person : NSObject {
    var name : String
    var age : Int
    
    init (name:String) {
        self.name = name
        self.age = 0
        super.init();
    }
}

指定构造器必须调用其直接父类的的指定构造器


class Person : NSObject {
    var name : String
    var age : Int
    
    override init () {
        self.name = ""
        self.age = 0
        super.init()
    }
}

子类也可复写父类的构造方法,
但是调用父类的designed方法前,必需初始化子类所有属性的值


当子类有便利构造方法时,必须要调用designed构造方法

class Person : NSObject {
    var name : String
    var age : Int
    
    init(name:String, age:Int) {
        self.name = name;
        self.age = age;
        super.init()
    }
    
   convenience init (name:String) {
    self.init(name:name,age:0);
    }
    
   convenience init(age:Int) {
        self.init(name: "Mingming",age:age)
    }
}

相关资料

相关文章

网友评论

      本文标题:Swift class类的初始化

      本文链接:https://www.haomeiwen.com/subject/pnvptrtx.html