連載
» 2015年11月17日 05時00分 UPDATE

初心者のためのSwiftで始めるプログラミング入門(7):iOSアプリを作るなら最低限覚えておきたい「オブジェクト指向」の基礎知識 (2/4)

[諏訪悠紀,アンダースコア]

クラスの機能

 クラスで実現できる機能には、次のようなものがあります。

  • プロパティの定義
  • メソッドの定義
  • イニシャライザーの定義
  • デイニシャライザーの定義
  • サブスクリプトの定義
  • エクステンションによる拡張
  • プロトコルへの準拠
  • 継承

 初めて聞いた言葉が多いと思いますが、初めから全ての機能をマスターする必要はありません。必要性の高いものから、少しずつ覚えていきましょう。この中から今回は「プロパティ」「メソッド」「イニシャライザー」について解説します。

プロパティ

 インスタンスには「プロパティ」という機能を使って、値を持たせることができます。プロパティを使うことで、状態を表したり、何かしらの情報を持たせたりすることができます。

swift7_image-property01.jpg プロパティ

プロパティの定義

 クラスにプロパティを定義するには、定数や変数の書き方と同様に行います。

class クラス名 {
    // プロパティを定数として定義
    let プロパティの名前 = プロパティの値
    // プロパティを変数として定義
    var プロパティの名前 = プロパティの値
}
swift7_image-property02.jpg プロパティの定義

 プロパティを定数にしたい場合は「let」から書き始め、変数にしたい場合は「`var`」から書き始めます。また、プロパティは定義時に値を入れなければいけないため、定義すると同時に値を代入します。

 例として「ボタン」のクラスに「ラベル」というプロパティを追加してみましょう。次のプログラムを書いてみてください。

class ボタン {
    var ラベル = "決定"
}

 これで「決定」という値を持った「ラベル」プロパティを定義することができました。各プロパティには必ず型を決めなければいけませんが、型推論が働くため、このプロパティはString型のプロパティになります。

swift7_image-property03.jpg 「ラベル」プロパティの追加

プロパティの利用

 「ラベル」プロパティは「ボタン」クラスのインスタンスが持つことになりますが、どのような値が入っているか確認したり、変数の場合は再代入したりすることができます。プロパティを利用するには、次のように書きます。

インスタンス.プロパティの名前
swift7_image-property04.jpg プロパティの利用

 インスタンスの後に「.」を書き、続けて対象のプロパティの名前を書きます。「ボタン」クラスのインスタンスが持っている「ラベル」プロパティを利用してみましょう。次のプログラムを書いてみてください。

let 決定ボタン = ボタン()
print(決定ボタン.ラベル)

 クラスの定義の中で「ラベル」プロパティの値を「決定」としているため、結果画面には「決定」が表示されると思います。

swift7_image-property05.jpg プロパティの利用

 「ラベル」プロパティは変数で定義したため、次のプログラムのように値を再代入することもできます。

決定ボタン.ラベル = "OK!"
print(決定ボタン.ラベル)
swift7_image-property06.jpg プロパティへの再代入

 プロパティを定数で定義した場合は、再代入しようすると、もちろんエラーになります。

swift7_image-property07.jpg 定数として定義したプロパティへの再代入(エラー)

コラム「printlnがなくなった!」

 2015年9月、Xcodeの最新バージョンである「Xcode 7」がリリースされました。それと同時にSwiftも「Swift 2」にバージョンアップしました。Swift 2では開発者の手助けとなる新しい機能が数多く追加されていますが、一方で本連載でもよく利用していた「println」関数が廃止となり、使えなくなりました。

 Swift 2からは「println」関数ではなく、「print」関数を使う必要があります。「print」関数は「println」と同じく、引数で渡された値を出力する関数です。ほぼ同じ関数ですので、いままで「println」と書いていたところを「print」に書き換えるだけで問題ありません。

// Swift 2からは使えない(エラー)
println("こんにちは!")
 
// Swift 2からも使える
print("こんにちは!")

 今までと異なる点は、結果画面に出力される値の最後に「\n」が付いていることです。この「\n」は「改行コード」と言い、改行を表す文字列です。「print」関数は引数で渡された値を出力すると同時に改行も行う関数ですので、「\n」も出力されています。「println」も同じ機能を持っていましたが、Xcode 6までのPlaygroundの結果画面では「\n」が見えない状態で表示されていました。

swift7_image-column01.jpg 改行コードの表示

 見慣れない文字が表示されるようになっていますが、「\n」は改行を意味していることを押さえておけば問題ありません。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。