Swiftのメソッドの種類

  • 25
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

メソッドの種類

  • クラスメソッド
  • インスタンスメソッド
  • イニシャライザ(init)

クラスメソッド

クラスメソッドのお約束
1. クラスメソッドの定義はfuncの前にclassが付く
2. クラスメソッドの呼び出しは、クラス名.クラスメソッド名


class Human {

    #1. クラスメソッドの定義はfuncの前に`class`が付く    
    class func helloClass() {
        println("hello class")
    }

}

#2. クラスメソッドの呼び出しは、クラス名.クラスメソッド名
Human.helloClass()  //=> "hello class"

『クラスメソッドは、クラスが使うメソッドだからクラス名.クラスメソッド名と記述する』

インスタンスメソッド

インスンタンスメソッドのお約束
1. インスタンスメソッドの定義はfuncのみ
2. インスタンスメソッドの呼び出しは、インスタンス.インスタンス名

class Human {

    #1. インスタンスメソッドの定義は`func`のみ
    func helloInstance() {
        println("hello instance")
    }

}

let human = Human()

#2. インスタンスメソッドの呼び出しは、インスタンス.インスタンス名
human.helloInstance()  //=> "hello instanse"

『インスタンスメソッドは、インスタンスが使うメソッドだからインスタンス名.インスタンスメソッド名と記述する』

イニシャライザ(init)

initのお約束
1. initメソッドはinit()と定義
2. initメソッドはインスタンスを生成時に自動で呼び出される
3. initに引数を設定した場合、インスタンス生成時に引数を渡す

引数無しのパターン

class Human {

    # 1. initメソッドは``init()``と定義
    init() {
        println("init Hunma")
    }

}

# 2. initメソッドはインスタンスを生成時に自動で呼び出される
let human = Human()  //=> "init Human"

引数ありのパターン

class Human {

    #1. initメソッドは``init()``と定義
    init(name: String) {
        println("init Hunma is \(name)")
    }

}

#3. initに引数を設定した場合、インスタンス生成時に引数を渡す
let human = Human(name: "keita")  //=> "init Human is keita"