石田修二 > コンピュータメモ > Java >    (サイト内検索

クラス設計

オブジェクト指向プログラミングとは(おさらい)

データを中心に考えます。

プログラムをデータ同士の連携と考えます。

プログラムを舞台としてイメージしましょう。プログラムはいわば舞台監督です。データに呼びかけて,指示を与えます。データは呼びかけを受けて,具体的に動きます。登場するデータをインスタンスと呼びます。

クラス(おさらい)

データは「情報の集まり」+「呼びかけに応じた処理」。情報をフィールド,処理をメソッドと呼びます。プログラムに登場するデータがメソッドを持つのか定めたものをクラスと呼びます。

図形描画ツールを例に考える

画面には楕円や長方形が描画され,移動します。図形を登場人物として考え,図形データに対して,呼びかけに応じて動いてもらいます。登場データが決まったら,各データのクラスを設計していきましょう。クラスを設計するには,情報としてのフィールドに何を持ち,また機能として何を持たせるのか考えます。

長方形を例に考えてみましょう。

位置座標
始点の「x座標」(左上座標)と「y 座標」(右下座標)
int x, int y

この左上座標で,長方形の位置を表すことにします。

大きさ
幅 (Width) と高さ (Height)
int width, int height

型は整数 int 型としています。double 型など小数点以下を考えるのもあり,ですが最終的な図形描画の際には,整数しか使えないので,int 型がいいでしょう。

線の色と塗りつぶしの色
Color lineColor, Color fillColor

では,長方形クラスを作成してみましょう。作成が終わったら,Rect2A.jaca という名前で保存し,コンパイルしておきます。

public class Rect2A {
	int x;  // 始点 x座標
	int y;  // 始点 y座標
	int width;  // 幅
	int height; // 高さ
}

次に,長方形クラスを使って,メインの処理進行を行うプログラム(work2A.java)を作成します。

public class work2A {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Rect2A r1 = new Rect2A();
		
		r1.x = 10;
		r1.y = 20;
		r1.width = 100;
		r1.height = 50;
		
		System.out.println("長方形 位置(" + r1.x + "," + r1.y + ")幅" + r1.width + ", 高さ" + r1.height);

	}

}

2つの長方形を扱えるように work2A.java を変更し,それぞれ以下のように設定しましょう。

2つの長方形を扱うというところがミソ。なので,インスタンスは2つ必要になります。

public class work2A {
	public static void main(String[] args) {
		Rect2A r1 = new Rect2A();
		
		r1.x = 10;
		r1.y = 20;
		r1.width = 100;
		r1.height = 50;
		
		System.out.println("長方形 位置(" + r1.x + "," + r1.y + ")幅" + r1.width + ", 高さ" + r1.height);
		
		Rect2A r2 = new Rect2A();
		
		r2.x = 40;
		r2.y= 30;
		r2.width = 60;
		r2.height = 80;
		
		System.out.println("長方形 位置(" + r2.x + "," + r2.y + ")幅" + r2.width + ", 高さ" + r2.height);
	}
}

リンクはご自由にどうぞ。

【石田修二トップページ】  【コンピュータメモ】 【Java】

Last modified: 2016-03-09 15:20:48