构造器

作者: y2015 | 来源:发表于2017-09-18 22:43 被阅读11次

任意一构造器初始化完毕后,属性必须都有初始值

1、默认构造器
如果结构体或类的所有属性都有默认值,同时没有自定义的构造器,那么 Swift 会给这些结构体或类提供一个默认构造器(default initializers)。这个默认构造器将简单地创建一个所有属性值都设置为默认值的实例。
let p = Person()
用类直接调用,注意每个属性都有默认值,且没有自定义的构造器
2、逐一成员构造器(ontly结构体)
如果结构体没有提供自定义的构造器,它们将自动获得一个逐一成员构造器。即结构体的存储型属性没有默认值时,既有默认构造器又有逐一成员构造器,换种说法,有默认构造器时肯定有逐一成员构造器

struct MyStruct{
    var length: Int?
    var width :Int?
}
MyStruct()
MyStruct(length: <#T##Int?#>, width: <#T##Int?#>)

3、自定义构造器
有自定义构造器时就没有默认构造器和逐一成员构造器(结构体)
Init(属性名)
4.指定构造器
和自定义构造器一样

init(parameters) {
    statements
}

5、便利构造器
你可以定义便利构造器来调用同一个类中的指定构造器,并为其参数提供默认值。你也可以定义便利构造器来创建一个特殊用途或特定输入值的实例。
你应当只在必要的时候为类提供便利构造器,比方说某种情况下通过使用便利构造器来快捷调用某个指定构造器,能够节省更多开发时间并让类的构造过程更清晰明了。

convenience init(parameters) {
    statements
}

6、构造器代理
值类型的构造器代理:直接在构造器中吊用其他构造器代理(self.init)
类的构造器代理规则:
1、指定构造器必须调用其直接父类的的指定构造器。
2、便利构造器必须调用同类中定义的其它构造器。
3、便利构造器必须最终导致一个指定构造器被调用。


123.png

相关文章

  • java编程思想5-初始化与清理

    1 构造器 不接受任何参数的构造器叫做默认构造器,如果没有编写构造器,则会自动创建无参构造器。如果有构造器,则不会...

  • Initialization in Swift

    简介 *自定义构造过程 *默认构造器 *值类型的构造器代理 *类的继承和构造过程 *可失败构造器 *必需构造器 *...

  • swift学习笔记

    1.swift类的构造器 swift构造器有三种:指定构造器和, 便利构造器, 默认构造器. 其中用'conve...

  • iOS开发 - 「Swift 学习」Swift的构造过程(值类型

    值类型的构造器代理 构造器通过调用其它构造器来完成实例的部分构造过程称为构造器代理,能够减少多个构造器间的代码重复...

  • Swift 定义枚举类

    添加构造器 便利构造器

  • Scala(四)-①-面相对象初级

    ① 构造器 Why 构造器的设计目的是为了用来初始化对象,在Scala中构造器分为主构造器和辅助构造器两种,辅助构...

  • 构造方法总结二

    构造器间的调用规则 指定构造器必须调用其直接父类的"指定构造器" 便利构造器必须调用同类中的其它构造器(指定或便利...

  • iOS9 with Swift 类的构造器(二)

    子类的构造器 在阐明和辨别清楚指定构造器和便利构造器之后,我们就可以开始了解子类的构造器了。 未声明构造器: 如果...

  • Swift学习:构造器(中)

    Swift之构造器(上)Swift之构造器(中)Swift之构造器(下) 本篇继续对Swift中的构造器进行介绍,...

  • Swift Tour Learn (八) -- Swift 语法

    本章将会介绍 存储属性的初始赋值自定义构造过程默认构造器值类型的构造器代理类的继承和构造过程可失败构造器必要构造器...

网友评论

      本文标题:构造器

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