美文网首页
swift Class的构造函数

swift Class的构造函数

作者: 无极战思 | 来源:发表于2020-06-16 19:50 被阅读0次

1.构造函数类似于OC中的初始化方法:init方法
2.构造函数有两种:一种是指定构造器(Designated Initializer),另一种是便利构造器(Convenience Initializer)。
3.构造函数的使用: 类的属性必须有值,如果不是在定义时初始化,可以在构造函数中赋值


image.png

报错内容:name和kind没有初始值

正确写法之一:在构造函数里面对属性赋值
  class Pet {
     var name:String
     var kind:String
      // 在指定构造器中给成员变量赋值
     init(name:String,kind:String) {
          self.name = name
          self.kind = kind
    }
 }
//创建一个pet对象
 let pet = Pet(name: "老七", kind: "法斗")
正确写法之二:在定义类时候,直接给属性赋初始值
class Pet {
    var name:String = "小花"
    var kind:String = "泰迪"
    init(name:String,kind:String) {
   }
 }

写法二如果不自定义init函数也不会报错

   class Pet {
     var name:String = "小花"
     var kind:String = "泰迪"
   }
 调用了Pet自动生成的默认指定构造器(无参数)
 let pet = Pet()
 print(pet.name)

所以说,Swift的指定构造器本质是,确保本类的成员变量一定要被赋值,不是说一定要通过指定构造器来赋值。这个从上面改动的例子中可以看出(默认构造器并没有给成员变量赋值)。

  1. 当某个类有父类时,在其指定构造器中必须调用父类的指定构造器,且在调用父类的指定构造器前,必须得确保这个类的成员变量必须得有值。
    正确写法:

       class Dog: Pet {
          var foodName = "馒头"
          var color:UIColor
          init(name: String, kind: String, color:UIColor) {
            self.color=color
            super.init(name: name, kind: kind)
           }
        } 
    

错误写法:


image.png

相关文章

  • Xcode 实用小技巧

    1 class成员构造函数生成 Swift 可以为 struct 合成成员构造函数,但不能为 class 合成。X...

  • 2018-01-23

    谈swift init构造函数一些心得 1、swift类Class的构造函数目的:为了给类的stored(存储)属...

  • swift Class的构造函数

    1.构造函数类似于OC中的初始化方法:init方法2.构造函数有两种:一种是指定构造器(Designated In...

  • Xcode 12 使用技巧

    本文翻译自 Paul Hudson 的 Xcode Tips 系列。 1 class成员构造函数生成 Swift ...

  • ES6之Class跟普通构造函数

    构造函数 Class构造函数 class的本质还是函数 Class 继承 总结 class更加贴近于面向对象的写法...

  • ES6 中 class 与构造函数的关系

    ES6 中 class 与构造函数的关系class 为 构造函数的语法糖,即 class 的本质是 构造函数。c...

  • 前端JS进阶二(ES6-Class语法)

    Class和普通构造函数有何区别 前端会使用ES6中的Class来代替JS中的构造函数 JS 构造函数 Class...

  • 33.3、class与对象

    class class是function函数的语法糖,class里的constructor相当构造函数,const...

  • Kotlin基础之构造函数

    ps:默认构造函数(主构造函数) 普通open class Animal { }会有一个默认空的构造函数, 添加默...

  • Kotlin中类的定义

    Kotlin中定义类也是使用class关键字 基本格式 构造函数主构造函数二级构造函数 构造函数分为主构造函数和二...

网友评论

      本文标题:swift Class的构造函数

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