Java入門12 クラスとインスタンス2

Java入門の第12回です。前回からの続きです。

前回はコード無しで、クラスとインスタンスについて解説しました。今回は、実際にJavaコードを書いて、クラスとインスタンスに触れてみましょう。

クラス(class)の実例

以下は、平面上の座標点を作成するためのクラスです。クラス名には任意の名前を付けられます。今回作成するのは、座標の一点を作成するクラスですからPointクラスとします。

class Point {
    int x;
    int y;
}

平面上の座標点は、x軸上の値とy軸上の値を与えれば一点に定まります。上記のPointクラスは、平面上の座標点を定めるための必要要件を抽出して定義したものと言えます。

上記のPointクラスは、あくまでも平面上の座標点を表す要件を定義しているに過ぎません。具体的なx座標の値とy座標の値が与えられなければ、抽象的な座標という概念のままです。

インスタンスの実例

上記のPointクラスからインスタンスを生成してみましょう。インスタンスを生成するにはnewキーワードを使用します。

//インスタンスを生成
new Point();

上記のように書くと、Pointクラスから新しいインスタンスが生成されます。生成したインスタンスを、以下のように変数に代入することもできます。

//生成したインスタンスを変数zahyoに代入
Point zahyo = new Point();

上記コードでは、newキーワードで生成したインスタンスを、zahyoという名前の変数に代入しています。

以下は、newキーワードでPointクラスからインスタンスを生成したうえで、 zahyoという名前の変数に代入して、インスタンス変数xとyに値を与えた例です。

//Pointクラス
class Point {
    int x;
    int y;
}

//インスタンスを生成
Point zahyo = new Point();
zahyo.x = 4;
zahyo.y = 6;

上記コードでは、 インスタンス変数xとyにそれぞれ4と6という値を与えています。 zahyoインスタンスにインスタンス変数xとyの値が与えられたことで、zahyoは(4, 6)という具体的な座標となりました。

Eclipse上でクラスとインスタンスを作成してみる

Eclipse上でクラスとインスタンスを作成して、簡単に動作確認をしてみましょう。

今回はこれまでの復習も兼ねて、EclipseでJavaプロジェクトを新規作成するところから始めます。Eclipseを起動してメニューから [ファイル] → [新規] → [Java プロジェクト] と選択してください。

以下の画面が表示されるので、プロジェクト名を入力して[次へ]を押します。プロジェクト名は何でも良いですが、「sample3-1」とでもしておきましょう。

[次へ]ボタンを押すとより詳細な指定もできますが、今回はこのままで[完了]を押してしまいましょう。すると、以下の画面が表示されます。

上記画面が表示されたら[作成しない]を押します。すると、以下の画面が表示されてプロジェクトの新規作成が完了します。

ここまでで、Javaプロジェクトが新規作成できました。

続けて、いま作成したJavaプロジェクト「sample3-1」のなかにクラスを新規作成しましょう。Eclipseメニューから [ファイル] → [新規] → [クラス] と選択してください。

すると、以下の画面が表示されます。

クラス名は分かりやすい名前なら何でも良いのですが、今回は「Test11」とします。また、【どのメソッド・スタブを作成しますか?】のなかの public static void main(String[] args)(V) の項目にチェックを付けて[完了]ボタンを押します。

すると、以下の画面が表示されてクラスの新規作成が完了します。

ここまでで、Javaクラスが新規作成できました。

いま作成したTest11.javaのソースコードを書き換えて、クラスとインスタンスを作成してみましょう。

//Pointクラス
class Point {
    int x;
    int y;
}

//Test11クラス
public class Test11 {
	public static void main(String[] args) {
		//インスタンスを生成
		Point zahyo = new Point();
		zahyo.x = 4;
		zahyo.y = 6;

		System.out.print("座標は(");
		System.out.print(zahyo.x);
		System.out.print(",");
		System.out.print(zahyo.y);
		System.out.print(")です");
	}
}

上記コードでは、Test11クラスからPointクラスを呼び出してzahyoインスタンスを生成しています。

zahyo.xやzahyo.yという具合にドット( . )でつなぐことで、zahyoのインスタンス変数xとインスタンス変数yに値を代入したり、代入されている値を参照できます。ドット( . )は、「~の」と読み替えると意味が分かりやすいでしょう。 zahyo.x は「zahyoのx」、zahyo.y は「zahyoのy」という具合です。

コードが入力できたら、Eclipseメニューの実行ボタンから[実行] → [Javaアプリケーション]を選択します。すると、以下のようにコンソールに実行結果が表示されます。

コンソールには「座標は(4,6)です」と表示されています。

Pointクラスからzahyoインスタンスを生成して、zahyoのインスタンス変数xとインスタンス変数yに、それぞれ4と6を値を代入しました。それらをprint()で書き出しています。

代入したものを参照して表示させただけなので、当たり前の実行結果となっていますが、とにかく newキーワードを使ってクラスからインスタンスを生成することができました。

次回へ続きます。