
今回はデータ型を自分で作る事ができる、クラスについて書きたいと思います。
プログラミング初心者の人にはクラスはちょっと難しいかもしれません。
僕もそうでした。
僕の場合はクラスって言うのがあるんだなってくらいで理解は全然できていませんでした。
でもアプリを作っていくと、クラスが立ちはだかって来るのでそこで初めてちゃんと勉強しました。
なるべくわかりやすくこの記事を書くつもりですが、最初はちゃんと理解できなくても良いので一回トライしてみて下さいね!
とりあえずクラスを書いて使うまでの基本的な流れを見てみましょう!
class Staff {
let name: String
var salaryHour: Int
init() {
self.name = "まゆげじお"
self.salaryHour = 1250
}
}
let salary: Staff = Staff()
let salary = Staff()//型推論で省略した書き方
print(salary.name)
print(salary.salaryHour)
上記コードは大きく分けて二つの構成になっています。
① 1行目〜8行目でクラスを定義しています。
② 11行目から定義したクラスを使う為のコードです。
今回の例はアルバイトスタッフに関するデータ型を作ります。
とりあえず名前と時給のデータを持たせるようにしたいと思います。
class Staff {
let name: String
var salaryHour: Int
init() {
self.name = "まゆげじお"
self.salaryHour = 1250
}
}
ここではクラスの書き方を説明します。
まずは1行目ですね。
classとしてあげて、クラス名を付けます。
※クラス名は他のデータ型と同じで最初の文字は大文字で書きましょう!
2行目と3行目で、名前と時給のデータを持たせます。
2行目はスタッフの名前なので、変更される事はないと思うのでlet(定数)として、3行目の時給は変更される可能性があるのでvar(変数)としています。
※このクラスの中にある定数や変数をプロパティと言うので覚えておきましょう!
ここまでで、宣言は完了です。
ただ、このままではプロパティにの何のデータも入っていないのでnameプロパティとsalaryHourプロパティに初期値を設定してあげます。
init() {
self.name = "まゆげじお"
self.salaryHour = 1250
}
プロパティに初期値を与えるには、イニシャライザと言う特殊な関数を使います。
1行目のようにinit()と書いてあげて中に初期値を代入して行きます。
2行目と3行目でプロパティに初期値を代入しています。
ただ普通にname = “まゆげじお”と書くのではなく、selfを付けてあげます。
これでクラスStaffを使う準備が整いました。
let salary: Staff = Staff()
let salary = Staff()//型推論で省略
print(salary.name)// 結果 まゆげじお
print(salary.salaryHour)// 結果 1250
では実際に使う時の方法を説明して行きます。
他のデータ型と同じようにデータ型を使う時は、
任意の定数名(let salary): データ型(Staff) = 代入したい値(Staff())
※作ったクラスも他のデータ型を同じなので2行目のように型推論で省略して書けます。
今回は初期値を代入しているのでStaff()として代入しています。
この定数を宣言する事をクラスのインスタンスと呼ぶので覚えておきましょう!
呼び出す方法が3行目と4行目になります。
クラス名(Staff).プロパティ名(name)
クラス名(Staff).プロパティ名(salaryHour)
ここまでがクラスを作って使う一連の流れです。
聞き慣れない用語も出て来たし、実際どう使って良いのかまだわからないと思います。
次の記事以降でもっと詳しく説明して行きます。
ありがとうございました。
[…] 前回[Swift入門#16]でも触れたイニシャライザについてもう少し書きたいと思います。前回ではイニシャライザの初期値を設定しましたが、通常はインスタンスごとにデータを持たせて使います。とりあえず例を見てみましょう! […]