0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

みんなのiOS講座 ゼロからSwiftで学ぶiPhoneアプリ開発の基礎:作業メモ④

Posted at

本日もみんなのiOS講座 ゼロからSwiftで学ぶiPhoneアプリ開発の基礎の学んだことメモ。
Swiftの基礎の続き。

#クラスとインスタンス

  • クラスを用いることで、変数や関数をひとまとめにすることができる。
  • クラスの中に書かれた関数のことをメソッドという。
class Dog {
    var name = ""
    func bark() {
        let message = name + ": Bow-wow!"
        print(message)
    }
}

クラスを作る。

  • 外部から変更可能な変数のことをプロパティという。
let pochi = Dog()
pochi.name = "Pochi"
pochi.bark()

この場合、nameを変更しメソッドが実行された結果、Pochi: Bow-wow!が出力される。
このようにクラスからインスタンスを生成し、プロパティやメソッドを使用することができる。
インスタンスは複数生成可能で、各インスタンスには異なるプロパティを持たせることができる。

#インスタンスプロパティと型プロパティ

  • クラスに記述可能なプロパティは大きく分けて、インスタンスプロパティと型プロパティがある
  • クラスの中に変数を書けばインスタンスプロパティとなる
  • インスタンスプロパティにはインスタンスを生成してからアクセスする。
class Dog {
    var name = ""
}

let pochi = Dog()
pochi.name = "Pochi"
pochi.name
  • 一方で型プロパティにはインスタンスを生成せずにアクセスすることができる。
  • 型プロパティの場合には、 staticを先頭に記述する。
  • インスタンスを生成しなくても、クラス名からプロパティにアクセスできる。
class Dog {
    var name = ""
    static var breeed = ""
}

Dog.breeed = "Akitaken"
Dog.breeed

この場合、インスタンスを生成しなくてもAkitakenが出力される。
インスタンスプロパティ、型プロパティを使用するのは状況によって変わる。

#インスタンスメソッドと型メソッド

  • インスタンスメソッドはインスタンスを生成してからアクセスできる。
  • 型メソッドはクラスからメソッドにアクセスできる。
class Dog {
    func bark() {
        print("Bow-wow!")
    }
}

let pochi = Dog()
pochi.bark()

この場合Bow-wow!が出力される(インスタンスメソッド)。

class Dog {
    func bark() {
        print("Bow-wow!")
    }
    
    static func barkStatic() {
        print("Bow-wow-wow!")
    }
}

Dog.barkStatic()

この場合、Bow-wow-wow!が出力される(型メソッド)。

#メモ
クラスとインスタンスこういう風に使われるのか〜〜と感じた(具体的なイメージはいつも通り湧いていない)。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?