
ActionScriptで学ぶクラスやオブジェクト指向の基礎
クラスメソッド株式会社
吉村 美保
2008/4/9
「メソッド」はどうやって書くのよ?
- - PR -
さて、メソッドとは具体的にどのように書くのでしょう。
メソッドには、戻り値があるものとないものがあります。戻り値のないものは、メソッド内で処理が完結しているもので、戻り値の型には「void」というキーワードを指定します。メソッドの結果によって処理の流れを変えたいようなときには戻り値を設定します。
■ メソッドを実際に作ってみよう!
それでは、一度Fingerクラスから離れて、いままでに学んだ制御文や演算子を使い、引数(メソッドを実行する際に必要となる変数、引数がないメソッドもある)の値が「3の倍数と3の付く数字」か判定するメソッドを作ってみましょう。
private function judge( num:int ):Boolean { |
【1】の「if ( num % 3 == 0 ) {」では、引数numが、3の倍数かどうかの判定をしています。【2】の「} else if ( str.indexOf( "3" ) != -1 ) {」では、引数numを文字列に直したものが代入された文字列strに「3」が含まれているかの判定をしています。【3】の「return result;」は、変数resultを戻り値として返すことを表しています。
このように一連の処理をメソッドにしてまとめておくと、重複したコードを書かなくても済みますし、メソッドの名前を明確にしておくことで、コードが読みやすくなります。
先ほどのFingerクラスの「getArea()」メソッドはlengthとsizeの積を戻り値として返しています。
■ 既存のメソッドの例、Stringクラスの「indexOf()」メソッドとは?
ちなみに、「indexOf」というのはStringクラスに用意されている、文字列を検索するためのメソッドで、文字列が見つかった場合文字列の先頭からの位置を戻り値とし、文字列が見つからなかった場合、-1を戻り値とします。
「オブジェクト」を生成してみなさいよ
クラスを使ってオブジェクトを生成してみましょう。オブジェクトの生成にはnew演算子を使ったりするなど、以下の2つの方法があります。
| オブジェクトの生成 |
var オブジェクト名:クラス名; |
■ オブジェクトの生成例
例えば、Fingerクラスのオブジェクトを生成する場合は、以下のようになります。
var yubi:Finger; |
また、下記のように略して記述することもできます。
var yubi:Finger = new Finger(); |
■ 親指から小指までのすべての“指”のオブジェクトをソースコードで表すと……
では、親指から小指のオブジェクトを生成する場合、どのようなソースコードになるか見てみましょう。
package { |
| 訂正のお知らせ 上記ソースコードについて、「 index.hair = 2;」を「index.hair = 2」と表記するなど、間違いがあり、修正させていただきました。内容について正確を期せずに混乱を招いた点、読者の皆様におわび申し上げます(2008年7月31日)。 |
【1】の「var thumb:Finger = new Finger();」では、親指のオブジェクトを生成します。【3】の「thumb.length = 4;」では、親指の長さをオブジェクトのフィールドlengthにセットしています。【4】の「thumb.size = 5;」では、親指の太さをオブジェクトのフィールドsizeにセットしています。
![]() |
| 図 指クラスを使って5本の指オブジェクトを生成したクラスのイメージ |
このように、オブジェクトを生成することで同じFingerクラスから5種類の指を作ることができました。
実行し、「little」(小指)オブジェクトの「getArea()」メソッドを実行した結果、「8」が画面に表示されれば成功です。
クラスを「継承」するの?
いかがでしたか? 今回はオブジェクト指向の片鱗が見えた感じですね。
次回は、これまでの連載中で使ってきたLesson**クラスのソースコードに必ず出ていた「extends」というキーワードを使う、クラスの「継承」について説明したいと思います。お楽しみに!
■@IT関連記事
| いまさら聞けないFlex、そして、いまこそ入門のとき!? Flex 3正式版リリース! Flexの過去・現在・未来 先日ついに正式リリースされたFlashベースのRIA技術Flex 3。いまが入門に最適なFlexの過去・現在・未来を一挙に解説 「リッチクライアント & 帳票」フ ォーラム 2008/3/31 |
||
| Flex Builder 3でサクっとActionScriptコーディング! 作って学ぶAIRウィジェットの基礎→応用(3) 今回はAIRウィジェットの処理やロジックをActionScriptでコーディングします。Flex Builder 3を使うと便利な機能が満載です 「リッチクライアント & 帳票」フ ォーラム 2008/3/24 |
||
| Javaのクラスとインスタンスを理解する Eclipseではじめるプログラミング(7) オブジェクト指向言語にとってクラスは胆となるる部分です。今回は、簡単なクラスを作成しながらクラスを理解していきます 「Java
Solution」フォーラム 2005/3/19 |
||
| Javaのメソッドを理解する Eclipseではじめるプログラミング(8) Javaでは「クラスの振る舞い」はメソッドとして表現されます。今回は「クラスの振る舞い」と「Javaのメソッド」について解説します 「Java
Solution」フォーラム 2005/4/23 |
||
| “たい焼き”であま〜く理解するJava文法と言語仕様 携帯アプリを作って学ぶJava文法の基礎(3) 初心者がJava言語を学ぶうえで最も困難なものの1つ、クラスやインスタンス、メソッドなどの概念をたい焼きで理解しましょう 「Java Solution」フォーラム 2008/3/12 |
| クラスを簡単に理解しよう [連載]いまから始めるJava(3) クラスはJavaの学習で最初に難しいと感じるテーマ。ところが変数の使い方の観点から見ていくと、いとも簡単に理解できてしまいます 「Java
Solution」フォーラム 2003/1/30 |
||
| クラスの継承の本質を知る [連載]いまから始めるJava(4) クラスの継承を抽象的に理解しようとすると難しくなってしまいます。メモリの拡張として理解すれば実に簡単であることが分かります 「Java
Solution」フォーラム 2003/3/8 |
||
| メソッドとコンストラクタはなぜ必要? [連載]いまから始めるJava(5) メソッドとコンストラクタによってプログラムを効率的に書けることを確認するとともに、プログラムには制御文が必要であることも理解します 「Java
Solution」フォーラム 2003/5/8 |
| プロフィール:吉村 美保(よしむら みほ) クラスメソッド株式会社 情報システム部 プログラマー ゲーム開発、インストラクターなどの経験を経て、クラスメソッド株式会社に入社。入社後はFlexやAIRによるRIA開発を行っている。 |
| 1-2 |
| INDEX | ||
| Flashの基礎を無料で習得! ActionScript入門(4) ActionScriptで学ぶクラスやオブジェクト指向の基礎 |
||
| Page1 「クラス」って何なのよ? 「クラス」ってどう書けばいいのよ? |
||
| Page2 「メソッド」はどうやって書くのよ? 「オブジェクト」を生成してみなさいよ クラスを「継承」するの? |
||
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|

