この章では、シンプルなクラスを作ってみて、クラスとインスタンス、そして参照の関係について説明していきます。
この3つが実はとても重要なので、この章の内容についてはしっかり理解しましょう。ここが分かれば全体の半分以上理解できたようなものです。
とりあえずクラスを作ろう
まずは、シンプルなクラスを作ってみて、そこから「クラスってどんなもの?」ということを見ていきましょう。
/**
* フィールド1つだけ持つシンプルなクラス。
*/
class SimpleClass
{
// int型変数のフィールドdataを用意します。
int data;
}
/**
* 実行用クラス。このクラスを実行してください。
*/
class SimpleClassRunner
{
public static void main( String[] args )
{
// SimpleClassクラスの参照型変数refを作ります。
SimpleClass ref;
// SimpleClassクラスのインスタンスを作り、
// その参照をref変数に入れます。
ref = new SimpleClass();
// ref変数内の参照を通して、SimpleClassクラスの
// インスタンスに入っているdataフィールドに
// 数値を入れます。
ref.data = 100;
// 今度はそれを取り出して出力します。
System.out.println( ref.data );
// 出力結果:
// 100
}
}
// SimpleClassRunner.java /** * フィールド1つだけ持つシンプルなクラス。 */ class SimpleClass { // int型変数のフィールドdataを用意します。 int data; } /** * 実行用クラス。このクラスを実行してください。 */ class SimpleClassRunner { public static void main( String[] args ) { // SimpleClassクラスの参照型変数refを作ります。 SimpleClass ref; // SimpleClassクラスのインスタンスを作り、 // その参照をref変数に入れます。 ref = new SimpleClass(); // ref変数内の参照を通して、SimpleClassクラスの // インスタンスに入っているdataフィールドに // 数値を入れます。 ref.data = 100; // 今度はそれを取り出して出力します。 System.out.println( ref.data ); // 出力結果: // 100 } }
「SimpleClassRunner.java」という名前でソースファイルを作り、このプログラムを貼り付けてコンパイルして、SimpleClassRunnerクラスを実行してください。「100」という数字が出力されればOKです。
まず、このプログラムには2つのクラス(SimpleClassクラスとSimpleClassRunnerクラス)が書かれていますが、説明で使用する「シンプルなクラス」というのは「SimpleClassクラス」の方です。プログラムの以下の箇所になります。
* フィールド1つだけ持つシンプルなクラス。
*/
class SimpleClass
{
// int型変数のフィールドdataを用意します。
int data;
}
/** * フィールド1つだけ持つシンプルなクラス。 */ class SimpleClass { // int型変数のフィールドdataを用意します。 int data; }
SimpleClassRunnerクラスは「そのクラスを使う側」なので、今はクラスとは考えないでください(この関係については「4.5 main()メソッドと「実行するクラス」」で説明します)。
SimpleClassの構造は下図のようになっています。
「class」キーワードの右側にある「SimpleClass」が、クラスの名前です。クラスを使う時には、この名前を指定します。
その次の中カッコの中(「{」と「}」の間)が、クラスの中身になります。この中に「このクラスはどういうクラスなのか」ということを書きます。
この中身に、この例では「フィールド」というものを1つ作ってあります。
フィールドというのは「クラスの中に作る変数」です。基本的には普通の変数と同じです。ここではint型の変数dataを用意していますので、この「dataフィールド」という変数の中に「100」といった整数値を入れることができます。
まだ「存在しない」!
ただ、この段階ではまだこのdataフィールドは存在しません。
クラスというのは、このように書いただけでは「実体が存在しない」のです。
次のページでは、その実体の作り方、クラスの使い方について見ていきましょう。