iOSアプリを作るなら最低限覚えておきたい「オブジェクト指向」の基礎知識:初心者のためのSwiftで始めるプログラミング入門(7)(3/4 ページ)
本連載では、これからプログラミングやiPhoneアプリ開発を始めてみたい方を対象に、開発に必要な知識を基礎から解説していきます。今回は、オブジェクト指向、クラス、プロパティ、メソッド、イニシャライザーの概要と、使い方などについて解説する。
メソッド
インスタンスにはメソッドという機能を使って、関数を持たせることができます。メソッドを使うことで、何かしらの処理をインスタンスの中で行わせることができます。
メソッドの定義
メソッドを定義するには、次のように書きます。
class クラスの名前 { func メソッドの名前() { } }
メソッドは連載第6回「プログラマーの腕の見せどころ――Swiftの関数、引数、戻り値の基本的な書き方と使い方」で使った関数と同じ書き方で定義します。引数や戻り値なども付けることができます。クラスの中では同じ名前かつ同じ引数のメソッドは複数定義できないという点に注意しましょう。
class クラスの名前 { // 引数付きのメソッド func メソッドの名前(引数名: 引数の型) { } // 戻り値付きのメソッド func メソッドの名前() -> 戻り値の型 { return 戻り値 } }
それでは実践です。先ほどの「ボタン」クラスに、メソッドを追加してみましょう。次のプログラムを書いてみてください。
class ボタン { func 押す() { print("ボタンを押したよ!") } }
このプログラムでは「押す」という名前のメソッドを新たに定義しています。メソッドの中では「ボタンを押したよ!」という文字列を出力するような処理が書かれています。
メソッドの呼び出し
関数の回で学んだときと同様、メソッドを定義しただけでは何も起こりません。「ボタン」クラスのインスタンスに対して、メソッドを実行する指示を行わなければいけません。メソッドを呼び出すときは、プロパティと同様に「.」を使います。
インスタンス.メソッド名()
「ボタン」クラスのインスタンスの「押す」メソッドを呼び出してみましょう。次のプログラムを書いてみてください。
let 決定ボタン = ボタン() 決定ボタン.押す()
「決定ボタン」のメソッドが呼び出され、結果画面に「ボタンを押したよ!」が表示されるはずです。
関数と同様、引数を定義すればメソッドを実行するときに値を渡せますし、戻り値を定義すれば、メソッドの実行結果を受け取ることもできます。
イニシャライザー
インスタンスには、生成されてから破棄されるまでの一連の流れがあります。インスタンスはクラスを元に生成した後に使えるようになり、必要がなくなったら破棄され、以後使えなくなります(※)。
※インスタンスを破棄する指示については、iOSアプリの場合コンピューターがほぼ自動的に行ってくれるため(Auto Reference Counting)、自分でプログラムに明示的に書く必要はありません。少し分かりづらいところではありますが、初めのうちは生成するところだけ理解していれば問題ありません。
インスタンスには、生成されるタイミングで何かしらの処理を行わせることができます。この処理のことを「イニシャライザー」と言います。
イニシャライザーの定義
イニシャライザーは、次のように書きます。
class クラスの名前 { init() { // 生成されるときに行いたい処理 } }
「init」から書き始め、続けて「()」を書きます。「()」の中には関数と同じように、引数が入ります。続けて「{}」の中にインスタンスが生成されるときに行いたい処理を書きます。
「ボタン」クラスの中にイニシャライザーを定義し、インスタンスの生成時に処理を加えてみましょう。次のプログラムを書いてみてください。
class ボタン { init() { print("ボタンを作ったよ") } }
このプログラムでは、イニシャライザーが呼ばれると「ボタンを作ったよ」と出力するようになっています。つまり、インスタンスが生成したときに「ボタンを作ったよ」と出力されるようになります。
次のように、インスタンスを生成してみましょう。「ボタンを作ったよ」と結果画面に出力されるはずです。
let 決定ボタン = ボタン()
関連記事
- 初心者でも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に対応】。
Copyright © ITmedia, Inc. All Rights Reserved.