目次> 第10章> 10.1 TOPUPPREVNEXT

10.1 クラス宣言とフィールド宣言

簡単なクラス宣言は次の形式です。 緑色の部分は必要な場合にだけ指定します。黒色の部分は必ず指定します。 英字の部分はそのとおりに書きます。

このクラスを別のパッケージ(異なるディレクトリにあるプログラム) から使用したい場合に、publicを指定します。

このクラス宣言の先頭の部分を、Class Modifiers といい、 publicの代わりに、 protectedprivate を指定できます。そのほか、 Annotationabstractstaticfinalstrictfp なども記述されます。

extends 親クラス を省略すると、 extends java.lang.Object となります。

インターフェースの実装をする場合に、 implements インターフェース名 を指定します。 複数のインターフェースを実装する場合には、

implements インターフェース1 , インターフェース2 , インターフェース3
のようにインターフェース名をコンマで区切ってならべます。

クラスの中で定義される変数を Javaでは フィールド といいます。 フィールドの定義は次のような形式です。

public を指定するとパッケージの外から このフィールドを参照する ことができるようになります。
package文 を使っていない場合、同一のフォールダ内であれば、 public 指定のない フィールドの参照が可能です。参照を禁止したければ、 public の位置に private と指定します。

private 指定クラス内で参照可能
private public も指定しないパッケージ内で参照可能
public 指定パッケージ外から参照可能

static を指定したフィールドを スタティック・フィールド あるいは クラス変数 といいます。 クラス変数はインスタンスの生成に関係なく、クラスに対して生成され 全てのインスタンスで共有されます。 このクラスの外で参照する場合には、

クラス名 .クラス変数名
のように、クラス名で 限定 modify します。

static を指定しない フィールドは、インスタンス変数になります。 インスタンス変数は、インスタンスが生成される際に生成され、 インスタンスごとの値を保持します。したがって、コンストラクタ以外の場所で 参照する場合には、

インスタンス名 .インスタンス変数名
のように、インスタンス名で 限定 modify します。

初期値 を省略すると、次の指定があるとみなされます。

数値 0
文字 \u0000
boolean false
それ以外 null

プログラム中で値を変更しないフィールドであることを示すのが final です。定義の際に 初期値 を与えます。 名前付き定数 named constant とか、定数フィールド と呼ばれます。 定数フィールドの名前は、全て大文字でつづり、単語と単語の区切りを表したい時は アンダースコアを使うのが習慣です。

メソッド定義は次のような形式です。 コンストラクタは特別なメソッドで、 データ型 をつけずに、 クラス名と同じ名前をメソッド名に指定します。

データ型は、このメソッドが関数のような形で式の中で用いられる場合に、 どんな型のデータを返すのかを指定します。

データ型に void と指定すると値が返されません。 この場合、メソッドは文のような形で参照されます。 void を指定したメソッドは、式の中では使えません。 void でないデータ型を指定したメソッドを、文のような形で参照すると 返された値は捨てられます。


更新日:2006/05/23 TOPUPPREVNEXT