libro
www.tuyano.com
初心者のためのSwiftプログラミング入門

クラスの基本について (5/5)

作成:2014-08-16 10:48
更新:2014-08-16 10:48

■イニシャライザについて

ここまで、インスタンス作成はすべてHelo();というように引数なしで行ってきました。が、インスタンスを作成する際、必要な値などを引数として渡すことができればとても便利ですね。

こうした時に利用されるのが「イニシャライザ」です。これはインスタンスを作成する際に自動的に呼び出される、初期化処理専用のメソッドです。このイニシャライザは以下のように定義します。
init ( 引数 ){
    ……初期化処理……
}

func initと書く必要はありません。ただ、initだけでOKです。イニシャライザは特別なメソッドなので、funcで定義する必要はないんですね。

このinit()に引数を用意すれば、インスタンス作成時に値を渡すことができるようになります。簡単な例を下にあげておきましょう。

ここでは、Heloクラスの中にinit(#name:String)という形でイニシャライザを用意しています。これにより、インスタンス作成する際には、Helo(name:"Taro");というように引数を指定して書くようになります。

なお、このイニシャライザの中で、引数に渡された変数nameHeloクラスのnameプロパティに代入するのに、「self.name」という書き方をしていますね。この「self」は、インスタンス自身を示す特別な値です。このように記述することで、「このインスタンス自身のnameプロパティ」を指定していたのですね。クラス定義ではよく使うものですので、合わせて覚えておくようにしましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

import Cocoa

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

var obj:Helo = Helo(name:"Taro");
obj.say();
※関連コンテンツ

「初心者のためのSwiftプログラミング入門」に戻る