Revised: Feb./23rd/2003: Since: Dec./26th/2001
Java プログラムはオブジェクトの集合です。実行時にはオブジェクト同士がメッセージを送りあって動作しますが、オブジェクトは別のオブジェクトによってクラスから作られます。クラスはオブジェクトの設計図のようなものであり、プログラマは専らクラスをコーディングします。この設計図(クラス)からは任意の個数のオブジェクトを作ることが出来ます。ここで、オブジェクトの状態を保持する変数がメンバー変数(属性、フィールド)であり、動作/機能を記述したものがメソッドです。
これからクラスやメソッドを沢山作ります。それぞれの話が、クラスのどこの部分のことなのか、常に把握しておいてください。
クラスの構成要素をクラスのメンバーと呼び、クラスから作られたオブジェクトが使える限り、クラスのメンバーも持続的に使うことが出来ます。クラスのメンバーは次のものが代表的なものです:
また、言語仕様上、クラスのメンバーではないのですが、クラスの主要な構成要素であるコンストラクタというものがあります。
典型的なクラスは次のような構成をしています:
[修飾子] class <クラス名> { //メンバ変数 [修飾子] <型> <変数名> = 値; //コンストラクタ [アクセス修飾子] <クラス名>([パラメタ]) { インスタンス化処理 } //メソッド [修飾子] <戻り値型> <メソッド名>([メソッド引数]) { コンピュータ制御 } }
修飾子の種類は、クラス、コンストラクタ、メソッドごとに沢山あります。後続の章で列挙しておきます。
従来の手続型言語は、オブジェクト指向言語から見ればメソッド内部しか記述できないと言っていいでしょう。 Java では、既存のクラスをコンストラクタを通じてインスタンス化することで、そのクラスのメンバ変数やメソッドが利用できるわけです。ここでは、ソフトウェア開発が、コンポーネントであるクラスの組み立てとして捉えられます。
メンバー変数(フィールド、属性)、メソッド、コンストラクタについては、後続の章で詳しく説明します。ここでは、典型的なクラスのソースを掲載しておきます。変数、メソッド、コンストラクタが各々どのコードに対応するのかだけ見ておいてください。
// クラス class ClassDemo { // 変数 private String name; // コンストラクタ public ClassDemo(String str) { name = str; } // メソッド public String getName() { return name; } }