クラスの構成要素

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;
	}
}


Copyright © 2001, 2003 SUGAI, Manabu. All Rights Reserved.