iOSアプリを作るなら最低限覚えておきたい「オブジェクト指向」の基礎知識:初心者のためのSwiftで始めるプログラミング入門(7)(2/4 ページ)
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。今回は、オブジェクト指向、クラス、プロパティ、メソッド、イニシャライザーの概要と、使い方などについて解説する。
クラスの機能
クラスで実現できる機能には、次のようなものがあります。
- プロパティの定義
- メソッドの定義
- イニシャライザーの定義
- デイニシャライザーの定義
- サブスクリプトの定義
- エクステンションによる拡張
- プロトコルへの準拠
- 継承
初めて聞いた言葉が多いと思いますが、初めから全ての機能をマスターする必要はありません。必要性の高いものから、少しずつ覚えていきましょう。この中から今回は「プロパティ」「メソッド」「イニシャライザー」について解説します。
プロパティ
インスタンスには「プロパティ」という機能を使って、値を持たせることができます。プロパティを使うことで、状態を表したり、何かしらの情報を持たせたりすることができます。
プロパティの定義
クラスにプロパティを定義するには、定数や変数の書き方と同様に行います。
class クラス名 { // プロパティを定数として定義 let プロパティの名前 = プロパティの値 // プロパティを変数として定義 var プロパティの名前 = プロパティの値 }
プロパティを定数にしたい場合は「let」から書き始め、変数にしたい場合は「`var`」から書き始めます。また、プロパティは定義時に値を入れなければいけないため、定義すると同時に値を代入します。
例として「ボタン」のクラスに「ラベル」というプロパティを追加してみましょう。次のプログラムを書いてみてください。
class ボタン { var ラベル = "決定" }
これで「決定」という値を持った「ラベル」プロパティを定義することができました。各プロパティには必ず型を決めなければいけませんが、型推論が働くため、このプロパティはString型のプロパティになります。
プロパティの利用
「ラベル」プロパティは「ボタン」クラスのインスタンスが持つことになりますが、どのような値が入っているか確認したり、変数の場合は再代入したりすることができます。プロパティを利用するには、次のように書きます。
インスタンス.プロパティの名前
インスタンスの後に「.」を書き、続けて対象のプロパティの名前を書きます。「ボタン」クラスのインスタンスが持っている「ラベル」プロパティを利用してみましょう。次のプログラムを書いてみてください。
let 決定ボタン = ボタン() print(決定ボタン.ラベル)
クラスの定義の中で「ラベル」プロパティの値を「決定」としているため、結果画面には「決定」が表示されると思います。
「ラベル」プロパティは変数で定義したため、次のプログラムのように値を再代入することもできます。
決定ボタン.ラベル = "OK!" print(決定ボタン.ラベル)
プロパティを定数で定義した場合は、再代入しようすると、もちろんエラーになります。
コラム「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」が見えない状態で表示されていました。
見慣れない文字が表示されるようになっていますが、「\n」は改行を意味していることを押さえておけば問題ありません。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
初心者でもiOS 9/tvOS向け2Dゲームが作れる標準フレームワークSpriteKitの基礎知識とチュートリアル
iPhoneゲームをSwift言語で作成してみたいという初心者向けにiOSのゲームフレームワークを使った作り方を一から解説する入門連載。初回は、SpriteKitの概要とサンプルゲームの動かし方、主要なクラスやメソッドなどを紹介する。GameplayKitなど他のゲームフレームワークの概要も。iOS 8のPhotoKitの概要&Xcode 6.1/Storyboard/Auto Layout/iOSシミュレーターの基本的な使い方
iPhone 6/6 PlusアプリをSwift言語で作成してみたいという初心者向けにiOS 8の新機能を使ったアプリの作り方を一から解説する入門連載。今回は、iOS 8のPhotoKitの概要とXcode 6.1の画面構成、新規プロジェクトの作り方、StoryboardとAuto Layoutによる画面作成方法、iOSシミュレーターの使い方などを解説する。開発者向けiOS 9、WatchOS 2、Swift 2、Xcode 7の新機能と新しいApple Developer Programの参考情報まとめ
iOS 9、WatchOS 2、Swift 2、Xcode 7の新機能や、Apple Developer Programについて、その概要とアップルが公開している参考情報をまとめて紹介します。iOSアプリ開発でObjective-CからSwiftに移行するための手順、注意点まとめ〜言語仕様の違いは? 連携時の呼び出し方は?
開発生産性や品質を向上させたいiOSアプリ開発者のためにObjective-CからSwiftへ移行するメリットや手順、注意点など勘所をまとめて紹介します。アップル、新プログラミング言語「Swift」「iOS 8 SDK」「Xcode 6」のベータ版を発表
米アップルが新しいプログラミング言語「Swift」と開発ツール「iOS 8 SDK」「Xcode 6」のベータ版を発表。その特徴と注目ポイントを紹介。外から見るWWDC 2014キーノート――Swiftに感じるAppleの本気
WWDC常連のドリキンが今年もキーノートを斬ります! 今回はメディアとエンジニアとで、反応が真っ二つに分かれる内容となりました。その理由をエンジニア視点で解き明かしていきたいと思います。Excelでプログラム作成を始めるメリットとマクロの基本
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。初回は、そもそもプログラミングとは何か、Visual BasicとVBAとマクロの違い、マクロの作り方、保存/削除、セキュリティ設定などについて【Windows 10、Excel 2016に対応】。