iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

Hello Swift系列 第 22

22/30 OOP之Initialization

  • 分享至 

  • xImage
  •  

Why

類別的實例使用前,都需要初始化。

What

設定實例每一個所儲存屬性的初始值,但Optional型別的屬性可以沒有初始值。

How

於宣告時設置。

class Baby{
    var name:String = "Tom"
    var age:Int = 1
    func sleep(){
        print("sleep")
    }
    func introduceSelf(){
        print("My name is \(name)")
    }
}

使用init方法(設定初始值,使物件運作)=指定初始化器(Designated Initializer)=主初始化器(Primary Initializer)

class Baby{
    var name:String
    var age:Int
    func sleep(){
        print("sleep")
    }
    func introduceSelf(){
        print("My name is \(name)")
    }

先初始化屬性(name,age),才能呼叫自己類別的方法(sleep)

    init(){
        name = "Tom"
        age = 1
        sleep()
    }

帶有參數的init方法,使用self在初始化器中來區分屬性名稱與參數

    init(name:String){
        self.name = name
        age = 1
    }
    init(age:Int){
        self.age = age
        name = "Sophie"
    }
    init(name:String,age:Int){
        self.name = name
        self.age = age
    }
}

let newBaby = Baby()

Baby(name:"May", age:16)

上一篇
21/30 OOPS!物件導向程式設計-2
下一篇
23/30 不入虎穴焉得虎子
系列文
Hello Swift30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言