編集部注:この連載をより深く理解するためには、記事「いまさら聞けない! FlashとActionScriptについて」も併せてご覧ください。
前回の記事「日常生活から理解するActionScriptの制御文」までに、ActionScript(以下、AS) 3の変数や制御文など、プログラムの基礎となる部分の説明をしてきました。
今回は、オブジェクト指向においてとても重要な、「クラス」の概念について説明します。
「クラス」とは、特定のデータや処理をひとまとめにしたものです。英語では「class」と書き、「分類」「種類」「仲間」といった同種の集まりの意味がありますが、オブジェクト指向では「ひな型」「設計図」と略す方がとシックリくると思います。クラスの構文は以下のようになります。
クラスの構文 |
アクセス修飾子 class クラス名 { |
クラスから作られたものを「オブジェクト」(もの)といい、オブジェクト指向では、クラスやオブジェクトを組み合わせてプログラムを作ります。前回までのコードを見直してみてください。そこでもクラスを作っていますね。オブジェクト指向では、どんなに小さなプログラムでもクラスが必要になります。
編集部注:オブジェクト指向について詳しく知りたい読者は、「連載「ここから始めるオブジェクト指向」」をご覧ください。
では、クラスを理解するうえで重要なキーワードを順に解説していきしょう。
「フィールド」とは、クラス内の変数を意味します。変数の意味や書き方などについては、連載第2回の「ActionScriptの変数や型、配列、演算子を理解する」をご覧ください。
「アクセス修飾子」はフィールドやクラスなどが、どの範囲から参照可能かを制御するのに用いられます。いくつか種類がありますが、その中でよく使われるアクセス修飾子をご紹介します。
アクセス修飾子 | 意味 | |
---|---|---|
internal(デフォルト) | 同じパッケージ内からしか呼び出せない | |
private | 同じクラス内からしか呼び出せない | |
protected | 同じクラスか、そのサブクラスからしか呼び出せない | |
public | どこからでも呼び出せる | |
おわびと訂正のお知らせ
上記「表 アクセス修飾子の種類」に関しまして、一部内容に間違いがございましたので、訂正と追加をしております。ご指摘をいただきました読者さま、大変ありがとうございます。そして、内容に関しまして読者の皆さまにご迷惑をおかけしましたことをおわびいたします。
内容に関しましては、これからも細心の注意と確認を行って記事を作成していきますが、今回のような間違いがございましたらご連絡をいただけますよう、今後ともよろしくお願い申し上げます(2008年4月10日、@IT編集部)。
「メソッド」は一連の処理がまとめられた部品のようなものです。メソッドの構文は以下のようになります。
メソッドの構文 |
アクセス修飾子 function メソッド名(引数名:型,引数名:型,…):戻り値の型 { |
メソッドの具体的な書き方は後ほど説明します。
「コンストラクタ」はオブジェクトを生成したときに自動的に呼ばれる、特別なメソッドです。大抵はクラス名と同じ名前になります。コンストラクタの書き方も後述します。
以上を踏まえて、クラスを作るために例を考えてみましょう。
オブジェクト指向では、「もの」がクラスになります。ここでは視界に入るもので一番身近な物として、「指」をクラスに例えて考えます。皆さんも自分の指を見ながら一緒に考えてみてください。
指には親指から小指まであり、それぞれ長さや太さ、毛の量が違います。そして共通する動作として、「曲げる」「伸ばす」などが考えられます。ここではこれらをひとまとめに「Fingerクラス」とします。Fingerクラスのフィールドには「指の長さ」「指の太さ」「毛の量」を定義、メソッドには「曲げる」「伸ばす」などの動作を定義しましょう。
Fingerクラスをソースコードで書くと、以下のようになります。
package |
おわびと訂正のお知らせ
上記ソースコードについて、「public var hair:int;」を「public var hair:int:」と表記するなど、間違いがあり、修正させていただきました。
内容について正確を期せずに混乱を招いた点、読者の皆様におわび申し上げます(2008年7月31日)。
また、上記Finger.asのコンパイルエラーが修正されないと、次ページのLesson4.asも正常にコンパイルされませんので、ご注意ください。
次ページでは、引き続きメソッドの書き方やオブジェクトの生成について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.