対象:
Swift

クラス(Swift)

クラスはclassキーワードで宣言する。クラスを書く場所には特に制限はない。例えば、ViewControllerクラスの後に続けて新しいクラスを書くこともできる。クラス名はアッパーキャメルケース(最初の単語の先頭は大文字、以降単語の先頭は大文字)、プロパティ名、及びメソッド名はロワーキャメルケース(最初の単語の先頭は小文字、以降単語の先頭は大文字)で記述する。

class SmartPhone {
    var name: String    // String型のプロパティ
    var screenSize: Double  // Double型のプロパティ
    
    // イニシャライザ
    init(name: String, screenSize: Double) {
        self.name = name
        self.screenSize = screenSize
    }
    
    // Stringを返すメソッド
    func toString() -> String {
        return "name: \(name) screenSize: \(screenSize)inch"
    }
}

上記のように、基本的なプロパティについてはvar(letも使える)キーワードによる普通の変数宣言、基本的なメソッドについてはfuncキーワードによる普通の関数宣言と何ら変わりない。

他の言語で一般的にコンストラクタと呼ばれているものは、Swiftではイニシャライザと呼ぶ。イニシャライザはinitキーワードで宣言する。イニシャライザ(メソッドも)の引数とクラスのプロパティが同名の場合、selfキーワードによってクラスのプロパティを識別できる。

上記のSmartPhoneクラスのインスタンスを生成するには、そのクラスのイニシャライザを呼べば良い。以下はSmartPhoneクラスの2つのインスタンスを配列リテラルで生成している。

        let list = [SmartPhone(name: "iPhone 5s", screenSize: 4.0), SmartPhone(name: "iPhone 6", screenSize: 4.7)]
        for phone in list {
            print(phone.toString())
        }

このコードの実行結果は以下のようになる。

name: iPhone 5s screenSize: 4.0inch
name: iPhone 6 screenSize: 4.7inch
(2015/03/25)
(2015/10/04 更新) Swift 2.0対応。

新着情報
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)
【iOS Objective-C, Swift Tips】ウィンドウの階層構造を3D表示する(Swift)

Copyright(C) 2004-2016 モバイル開発系(K) All rights reserved.
[Home]