クラスと構造体の基礎

シェアする

S 2016 05 20 13 52 16

Swiftにはクラス(Class)と構造体(struct)が存在します。

どちらもプロパティやイニシャライザ、メソッドを定義することできるのでよく似ていますが、クラスは参照型で代入した場合オブジェクトの中身はコピーされないのに対し、構造体は値型で代入すると値のコピーが発生するところが大きくことなります。

クラスの基本

Swiftのクラス定義は以下のようになります。

プロパティはイニシャライザ等を利用して初期化する必要があります。

オブジェクトを生成してほかの変数に代入。変数が同じオブジェクトを参照しているかどうかは「===」を利用して比較します。

personとperson2は同じオブジェクトを参照しているため、personのプロパティの値を変更するとperson2のプロパティの値も変わっていることが分かります。

2つのオブジェクトを生成して比較すると同じ値でも異なるオブジェクトと判定されます。

構造体の基本

構造体の定義は以下のようになります。

構造体を代入すると値がコピーされます。

static変数とstaticメソッド

クラス毎に定義される静的変数や静的メソッドを定義するにはstaticキーワードやclassキーワードが使えます。classキーワードを使うとサブクラスでメソッドをオーバーライドすることができます。

静的変数やメソッドはオーバーライドできないという流儀になれている方は、staticを使うと良いかもしれません。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

フォローする