メソッドの種類
- クラスメソッド
- インスタンスメソッド
- イニシャライザ(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"