2016年9月20日火曜日

050: Swift 3 クラスとストラクチャ


概要

クラスとストラクチャには以下の共通点がある:
クラスにはさらに以下の特徴がある
  • 別のクラスから特徴を継承できる
  • 型キャストにより、実行時にクラス・インスタンスの型を調べて解釈できる
  • 非イニシャライザにより、クラス・インスタンスが割り当てたリソースを解放できる

クラスとストラクチャ

プレイグラウンド:

1.クラスとストラクチャの定義 2.インスタンスの生成 3.プロパティにアクセスする 4.参照型と値型
ストラクチャと列挙型は値型、クラスは参照型です。 5.アイデンティティ・オペレータ(=== : オブジェクトが等しい, !== : オブジェクトが異なる)

クラスとストラクチャのどちらを使うか?

次の場合はストラクチャが適している:
  • 比較的単純な値をカプセル化する
  • インスタンスのカプセル化された値を割り当て時に参照ではなくコピーしたい
  • ストラクチャに保持されるプロパティはそれ自身が値型である
  • 別の型のプロパティや振る舞いを継承する必要がない
ストラクチャの例:
  • Double 型の幅と高さを持つ幾何学図形のサイズ
  • Int 型の開始番号と長さを持つ範囲
  • 三次元座標の点:Double 型の x, y, z を持つ

String、Array、Dictionary はストラクチャです。
NSString、NSArray、NSDictionary はクラスです。

継承

プレイグラウンド:

1.ベースクラスと継承クラス 2.as によるキャスト

初期設定と終了設定

プレイグラウンド:

1.初期設定 2.終了設定 3.イニシャライザの種類と規則