Objective-CとSwiftを使ってみよう – クラスを定義する(Swift編)

Objective-CとSwiftを使ってみよう – クラスを定義する(Objective-C編)ではObjective-Cでのクラスの定義方法について説明した。今回はそのSwift編といきたい。Swiftにおいては、Objective-Cとは違う部分が多々あるので、気をつけたい。

クラスの定義の仕方

SwiftではObjective-Cとは違い、宣言と実装に分かれていない。ここでは「Hello.swift」で定義する場合について説明したい。

サンプルコード

プロパティーを定義する

Swiftにおいては、プロパティーの定義はclass内に設定する。初期値を設定した場合は型推論により、初期値に指定された型が割り当てられるほか、任意の型を明示的に指定することができる。

なお、Swiftではクラスプロパティーやスタティックプロパティーも定義することができる。この場合はvarletの前にclassstaticつけることで指定できる。インスタンス単位ではなくクラス単位となる。以下はスタティックプロパティーの例である。

また、アクセス修飾子をつけることも可能で、以下のようにできる。

  • private – そのクラス内からのみアクセス可能
  • fileprivate – そのファイル内からのみアクセス可能
  • internal – 同モジュール内からのみアクセス可能
  • public – すべてのモジュールからアクセス可能だが、別モジュールは継承・オーバーライドはできない。
  • open – すべてのモジュールからアクセス・継承・オーバーライド可能

クラスプロパティーとスタティックプロパティーについての違いについては、別の機会に説明したい。

メソッドを定義する

Swiftでは、以下のようにメソッドを定義する。

Swiftではクラスメソッド及びスタティックメソッドの定義も可能で、この場合はfuncの前にclassstaticをつければ可能である。アクセス修飾子もプロパティーに準ずる。

最後に

SwiftではObjective-Cと比べるとかなり進歩している部分があり、クラスの定義もかなり柔軟性を増していると言える。Objective-Cではできなかったことが多数できるようになっており、ここでは説明していなかったこともできる。

今回はそれらについては説明していなかったが、近いうちにここでは説明していなかったことについても触れてみたい。

ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。ご用の方はコメントかコンタクトフォームにて。

スポンサーリンク

フォローする