k0b0's record.

Computer Engineering, Arts and Books

Swift入門 クラス

クラス

 Swiftのクラスの基本的な使い方をメモ。

クラス定義の書式

class クラス名 {
   プロパティ・メソッドを記述
}

クラス生成(インスタンス化)の書式

クラス名(引数1, 引数2, ...

クラス定義の記述例

 以下にクラスの記述例Language_profクラスを示す。Language_profクラスではプロパティとして名前(name)、年齢(age)、設計者(designer)を定義している。これらの値はインスタンス生成時に引数として設定できる(設定しない場合は初期値("Swift", 4, "Chris Lattner")が設定される。クラス内の各getメソッドではクラス内に定義されているプロパティの値を取得する。
 記述例の"// --- Main program ---"以降ではLanguage_profクラスをインスタンス化(”引数あり”と”引数なし”)してクラス内のメソッドを呼び出している。

クラスの用語
用語 説明 基本的なアクセス方法
プロパティ クラス内に定義された変数・定数 オブジェクト名.プロパティ名
イニシャライザ クラスがインスタンス化された時に起動するメソッド クラス名()
メソッド クラス内のメソッド オブジェクト名.メソッド名
// -- Class language_prof
class Language_prof {
   
    //プロパティ
    var name:String = ""
    var age:Int  = 0;
    var designer:String = ""
   
    // イニシャライザ:初期値あり
    init(){
        name = "Swift"
        age  = 4;
        designer = "Chris Lattner"
    }
    
    // イニシャライザ:初期値を引数で指定
    init(name:String, age:Int, designer:String) {
        self.name = name
        self.age  = age
        self.designer = designer
    }
   
    // メソッド
    // 名前を取得
    func get_name() -> String {
        return self.name
    }
    // 年を取得
    func get_age() -> Int {
        return self.age
    }
    // 設計者を所得
    func get_designer() -> String {
        return self.designer
    }
}

// --- Main Program ---
// オブジェクトの作成:クラスLanguageをインスタンス化して変数lang_0に格納(初期値なし)
var lang_0 = Language_prof();
// クラス内のメソッドにアクセスしてプロパティの値を取得
print(lang_0.get_name())
print(lang_0.get_age())
print(lang_0.get_designer())

print("") //改行

// オブジェクトの作成:クラスLanguageをインスタンス化して変数lang_1に格納(初期値あり)
var lang_1 = Language_prof(name:"C", age:46 , designer:"Dennis MacAlistair Ritchie");
print(lang_1.get_me())
print(lang_1.get_age())
print(lang_1.get_designer())
}

実行例

 Language_profクラスを”引数なしの場合”と”引数ありの場合”でインスタンス化して各メソッドを実行した結果を以下に示す。

Swift
4
Chris Lattner

C
46
Dennis MacAlistair Ritchie