« Javaアプレット(24) 言語による配列の違い | トップページ | Javaアプレット(26) メソッドの作成 »

2012/02/04

Javaアプレット(25) 2進行列クラスの作成

2進行列クラスを作成しました。作成したソースファイルと実行結果を別のページにまとめましたので参照ください。今回はアプレットを作っていないのでJavaランタイムは不要です。

作成したBMatrix.javaについて説明します。

このソースファイルでは、クラス BMatrix を定義しています。このクラスには、コンストラクタ
public BMatrix(int n, int m)
と4つのメソッド
void clear()
int getValue(int i, int j)
void setValue(int i, int j, int value)
java.lang.String toString()
を作りました。

コンストラクタは2進行列のオブジェクトを生成するときに呼ばれます。
clear() は2進行列をゼロクリアします。
getValue() はi行j列の値(0か1)を設定します。
setValue() はi行j列の値(0か1)を返します。
toString() はデバッグ用ですが、2進行列の内容をテキストに変換します。

まずは、コンストラクタを作ります。
public BMatrix(int n, int m)
の部分をまず書きます。n行m列の2進行列を作るためのパラメタnとmを指定します。ここまで書いて、カーソルをpublicのpの直前に合わせ、Eclipseのメニューで「ソース」「要素コメントの生成」を選ぶと、
/**
 * @param n
 * @param m
 */

の部分が自動生成されますので、他のドキュメントを追加します。
指定されたサイズnとmは保存しておく必要があるので、
private int n, m;
を用意しておき、そこに保存します。
そして、2進行列そのものを保存する場所として、
private int[][] cell;
を用意します。これをコンストラクタの中でクリアするのですが、n行のほうはn行分の各行への参照が用意されますが、m列のほうはそれをビットに割り当てるので、intの配列1つに対し32ビットまで記憶できるので、mを32で割った数(余りは繰り上げ)をm2とし、m2だけ確保します。m2はmから計算できますが、毎回計算するのではなく
private int m2;
として保存します。

それから、クラスを作成するときは、パッケージ名を"nonkit"としましたが、クラスライブラリとそれを呼び出すプログラムを分けるために、パッケージ名を"nonkit.lib"に変更しました。これはソース上で変更するだけで構いません。変更すると、packageの行がエラーになります。行の先頭に×マークのついたランプのアイコンが現れるので、それをクリックします。そして「'BMatrix.java'をパッケージ'nobukit.lib'に移動」を選ぶと、nonkit.libというフォルダが作られ、ソースBMatrix.javaがそこに移動されます。

(つづく)

|

« Javaアプレット(24) 言語による配列の違い | トップページ | Javaアプレット(26) メソッドの作成 »

Java」カテゴリの記事

コメント

sasayanさん、またのお越しをお待ちしております。

投稿: たかはしのんき | 2012/02/06 23:41

初めて訪問しました。
しばらくJava御無沙汰しているなぁと反省やら懐かしいやら(超簡単なやつですが…)。

又遊びに来ます。

投稿: sasayan | 2012/02/06 16:01

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Javaアプレット(25) 2進行列クラスの作成:

« Javaアプレット(24) 言語による配列の違い | トップページ | Javaアプレット(26) メソッドの作成 »