#メソッドの種類
- クラスメソッド
- インスタンスメソッド
- イニシャライザ(init)
#クラスメソッド
クラスメソッドのお約束
- クラスメソッドの定義はfuncの前に
class
が付く - クラスメソッドの呼び出しは、クラス名.クラスメソッド名
class Human {
#1. クラスメソッドの定義はfuncの前に`class`が付く
class func helloClass() {
println("hello class")
}
}
#2. クラスメソッドの呼び出しは、クラス名.クラスメソッド名
Human.helloClass() //=> "hello class"
『クラスメソッドは、クラスが使うメソッドだからクラス名.クラスメソッド名
と記述する』
#インスタンスメソッド
インスンタンスメソッドのお約束
- インスタンスメソッドの定義は
func
のみ - インスタンスメソッドの呼び出しは、インスタンス.インスタンス名
class Human {
#1. インスタンスメソッドの定義は`func`のみ
func helloInstance() {
println("hello instance")
}
}
let human = Human()
#2. インスタンスメソッドの呼び出しは、インスタンス.インスタンス名
human.helloInstance() //=> "hello instanse"
『インスタンスメソッドは、インスタンスが使うメソッドだからインスタンス名.インスタンスメソッド名
と記述する』
#イニシャライザ(init)
initのお約束
- initメソッドは
init()
と定義 - initメソッドはインスタンスを生成時に自動で呼び出される
- 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"