LoginSignup
33
36

More than 5 years have passed since last update.

Swiftのメソッドの種類

Posted at

メソッドの種類

  • クラスメソッド
  • インスタンスメソッド
  • イニシャライザ(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"
33
36
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
36