mzgkworks

iOSを中心にプログラミング関係について書く

【Swift】クラス

黒帯本iOS開発の基礎を学び直す。
P.69 Chapter 2-03

インスタンス

  • クラスはあくまで定義(設計書)
  • 値の保持、処理を行うのはインスタンス
// クラスのインスタンス化
var インスタンス = クラス名()

プロパティに値を設定する

インスタンス名.プロパティ = 値
インスタンス名.メソッド(値)
// メソッド名は **set + プロパティ名**

継承

  • 元クラスの内容(プロパティ・メソッド)を引き継いで、拡張できる
  • 元クラスに機能を追加してしまうと、必要の無い機能を持ち既存のインスタンスの挙動に影響がでる可能性があるので、継承を使う
  • 開発工数の削減
  • 品質の保証

override

  • 継承元のメソッドの機能を変えることができる
override func 継承元のメソッド名()

super

  • 継承先でoverrideしたメソッド内で、継承元のoverride前のメソッドをcallして既存処理を行う
// 継承元
class Dog() {
    func bark() {
        print("わんわん")
    }
}

// 継承先(Dogを継承したGuideDogクラス)
class GuideDog: Dog {
    // 鳴き声を拡張
    override func bark() {
        super.bark() // 拡張前の元処理を実行
        // 拡張した内容(わんわん -> きゃんきゃん)
        print("きゃんきゃん")
    }
}