「メソッド」はどうやって書くのよ?
さて、メソッドとは具体的にどのように書くのでしょう。
メソッドには、戻り値があるものとないものがあります。戻り値のないものは、メソッド内で処理が完結しているもので、戻り値の型には「void」というキーワードを指定します。メソッドの結果によって処理の流れを変えたいようなときには戻り値を設定します。
■メソッドを実際に作ってみよう!
それでは、一度Fingerクラスから離れて、いままでに学んだ制御文や演算子を使い、引数(メソッドを実行する際に必要となる変数、引数がないメソッドもある)の値が「3の倍数と3の付く数字」か判定するメソッドを作ってみましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
【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つの方法があります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
■オブジェクトの生成例
例えば、Fingerクラスのオブジェクトを生成する場合は、以下のようになります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
また、下記のように略して記述することもできます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
■親指から小指までのすべての“指”のオブジェクトをソースコードで表すと……
では、親指から小指のオブジェクトを生成する場合、どのようなソースコードになるか見てみましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
訂正のお知らせ
上記ソースコードについて、「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にセットしています。
このように、オブジェクトを生成することで同じFingerクラスから5種類の指を作ることができました。
実行し、「little」(小指)オブジェクトの「getArea()」メソッドを実行した結果、「8」が画面に表示されれば成功です。
クラスを「継承」するの?
いかがでしたか? 今回はオブジェクト指向の片鱗が見えた感じですね。
次回は、これまでの連載中で使ってきたLesson**クラスのソースコードに必ず出ていた「extends」というキーワードを使う、クラスの「継承」について説明したいと思います。お楽しみに!
プロフィール
吉村 美保(よしむら みほ)
クラスメソッド株式会社 情報システム部 プログラマー
ゲーム開発、インストラクターなどの経験を経て、クラスメソッド株式会社に入社。入社後はFlexやAIRによるRIA開発を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- いまさら聞けないFlex、そして、いまこそ入門のとき!?
Flex 3正式版リリース! Flexの過去・現在・未来 先日ついに正式リリースされたFlashベースのRIA技術Flex 3。いまが入門に最適なFlexの過去・現在・未来を一挙に解説 - Flex Builder 3でサクっとActionScriptコーディング!
作って学ぶAIRウィジェットの基礎→応用(3) 今回はAIRウィジェットの処理やロジックをActionScriptでコーディングします。Flex Builder 3を使うと便利な機能が満載です - Javaのクラスとインスタンスを理解する
Eclipseではじめるプログラミング(7) オブジェクト指向言語にとってクラスは胆となるる部分です。今回は、簡単なクラスを作成しながらクラスを理解していきます - Javaのメソッドを理解する
Eclipseではじめるプログラミング(8) Javaでは「クラスの振る舞い」はメソッドとして表現されます。今回は「クラスの振る舞い」と「Javaのメソッド」について解説します - “たい焼き”であま〜く理解するJava文法と言語仕様
携帯アプリを作って学ぶJava文法の基礎(3) 初心者がJava言語を学ぶうえで最も困難なものの1つ、クラスやインスタンス、メソッドなどの概念をたい焼きで理解しましょう - クラスを簡単に理解しよう
[連載]いまから始めるJava(3) クラスはJavaの学習で最初に難しいと感じるテーマ。ところが変数の使い方の観点から見ていくと、いとも簡単に理解できてしまいます - クラスの継承の本質を知る
[連載]いまから始めるJava(4) クラスの継承を抽象的に理解しようとすると難しくなってしまいます。メモリの拡張として理解すれば実に簡単であることが分かります - メソッドとコンストラクタはなぜ必要?
[連載]いまから始めるJava(5) メソッドとコンストラクタによってプログラムを効率的に書けることを確認するとともに、プログラムには制御文が必要であることも理解します