05.クラスとメソッド
当コーナーはJavaの基本的な事項を紹介していくものです。
クラスとメソッド
Javaプログラマーはクラスとメソッドを作成することが第一の仕事です。ここでは簡単なJavaのクラスを元にその役割について説明していきます。
まずクラスとはデータが格納される変数を定義したり、処理機能を記述した一つの塊(メソッド) を記述したものです。またはインスタンス(後述)の雛形とも言われます。
Javaプログラムには、最低でも一つのmain() メソッドを含むクラスが必要です。
ここまで作成してきたSampleXXのプログラムもそれぞれがクラスです。
複数のクラスを定義して部品化することも可能です。
まずは以下のコードを記述し「Sample05Sub.java」と言う名前で保存してください。
import java.util.Date; /* * クラス名 :Sample05Sub.java * * 作成日 :2006/12/01 * 作成者 :アイオステクノロジー * 最終更新日:2006/12/01 * 最終更新者:アイオステクノロジー * */ public class Sample05Sub{ public String answerDate(String str){ Date date = new Date(); String answer = str + date.toString(); return answer; } }
ここで、import java.util.Date; や Date date = new Date(); など見慣れない言葉が出てきましたが後ほど説明します。
次にメインのクラスを作ります。以下のコードを記述し「Sample05.java」と言う名前で保存してください。
/* * クラス名 :Sample05.java * * 作成日 :2006/12/01 * 作成者 :アイオステクノロジー * 最終更新日:2006/12/01 * 最終更新者:アイオステクノロジー * */ /** * Sample05のメインクラス。 */ public class Sample05 { /** * メインメソッド */ public static void main(String[] args) { Sample05Sub sample05sub = new Sample05Sub(); String todayStr = sample05sub.answerDate("今日は"); System.out.println(todayStr); } }
コマンドプロンプトでコンパイル後、「java Sample05]と入力し実行してみます。
今日はFri Dec 01 15:34:09 JST 2006と出力されました。
まず、このプログラムの役割を説明します。
①Sample05.javaでサブクラスとなる、Sample05Subのインスタンスをsample05subと言う名前で生成する。
②String型の変数todayStr に対してsample05subのanswerDateメソッドを呼び出す。
この時にSample05Sub.javaが使われます。
メソッドには引数として”今日は”と言うString型の値を与えています。
③sample05subのanswerDateメソッドは、まずDate型のインスタンスdateと言う名前で生成します。
String型の変数answerに、メソッドが受け取ったString型の変数strとdateのtoString()メソッドを
結合して代入し、呼び出された側に返却します。
④Sample05は受け取ったString変数をtodayStrに代入し、System.out.println()で内容を表示する。
- Sample05Sub sample05sub = new Sample05Sub();と言うコードのことをインスタンス化する、またはnew演算子を利用すると言います。new演算子でメモリ領域を確保し、インスタンスを使える状態にします。
インスタンスとはクラスの実体をさします。 - String todayStr = sample05sub.answerDate(“今日は”);と言うコードでインスタンスが持つメソッドを実行します。
左辺のString todayStr にメソッドを実行した際に返って来る値が代入されます。
右辺のsample05sub.answerDate(“今日は”)はメソッドの呼び出しです。
インスタンス名.メソッド名(引数)の形でコーディングします。 - さて呼び出される側のSample05Sub.javaですが、import java.util.Date;と言うコードがあります。
この構文は一般的にはimport文と呼ばれています。
Java APIに含まれるクラスを利用するにはこのimport文を使って「このプログラムではこのクラスを使います。」と言うことを宣言します。 - API(Application Programmer Interface)とはプログラムを書くときに使用するライブラリ群のことです。
数多くのクラスが提供されています。 - Sample05Sub.javaではDate date = new Date();と言うコードがあるので「Dateクラスを使います。」と言う宣言をおこなっているのです。
- String型の変数answerに 引数str と dateオブジェクトのtoString()メソッドを利用して「曜日 月 日 時 分 秒 タイムゾーン 西暦」 を取得しています。
”今日は”と日付のStringオブジェクトとを結合しています。
そしてその変数answerをreturn文を用いてメインクラスに返却しています。 - Sample05.javaのSystem.out.println(todayStr);でtodayStrの内容の「今日はFri Dec 01 15:34:09 JST 2006」が出力されます。