Swift 入門 | クラスの基本 | イニシャライザー

これまでは Helo() のように、引数を渡さずにインスタンスを作成してきた。インスタンスを作るときに必要な値を渡せると便利である。

このために使うものがイニシャライザーである。イニシャライザーは、インスタンスを作成するときに自動的に呼び出される初期化専用のメソッドである。次のように定義する。

init(引数) {
    ...... 初期化処理 ......
}

func init と書く必要はない。init だけを記述する。イニシャライザーは特別なメソッドであるため、func は不要である。

丸かっこの中に引数を宣言すると、インスタンスの作成時に値を渡せる。次に簡単な例を示す。

import Cocoa

class Helo {
    var name:String;
    
    init(name:String){
        self.name = name;
    }
    
    func say(){
        print("Hello, " + name + "!");
    }
}

var obj:Helo = Helo(name:"Taro");
obj.say();

Helo クラスでは、init(name:String) という形式でイニシャライザーを定義している。Helo(name:"Taro") のように引数を渡してインスタンスを作成する。

イニシャライザー内では、引数 nameHelo クラスの name プロパティに代入するために self.name と書いている。self はインスタンス自身を表す特別な値である。この構文は現在のインスタンスの name プロパティを指し、クラス定義で頻繁に利用する。