本日もみんなの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!
が出力される(型メソッド)。
#メモ
クラスとインスタンスこういう風に使われるのか〜〜と感じた(具体的なイメージはいつも通り湧いていない)。