インスタンスメンバとクラスメンバ

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

定数の宣言

どの図形を描くか決定するモードは、此迄の学習の中では「0〜3」迄の数値でした。
此の数値に意味付けをする役目も含めて定数にしましょう。
定数の宣言の仕方は第2章で学びましたが、定数は何時も同じ値が入っているので、オブジェクトを沢山作ったとしても1つで十分です。
此の様に、オブジェクトの数に依らず、1つしか作られないフィールドをクラスメンバと言います。
此に対し、オブジェクトがインスタンス化される度に作られるフィールドをインスタンスメンバと言います。
クラスメンバにするには、宣言の時に「static」を付けます。

public static final 型 定数名 = 初期値;

定数名の利用

クラスを利用する側で定数を使う場合には、どのクラスで宣言された定数名と言う所属クラスを明らかにします。

クラス名.定数名

クラスメソッド

ターゲットとなるインスタンス化されたオブジェクトが必要無いメソッドでは、メソッドの宣言時に「static」を付けてクラスメソッドにします。
クラスメソッドからはインスタンス変数を参照されたり、インスタンスメソッドを呼び出したり出来ません。
例えば、数値演算を行うMathクラスでは、全てのメソッドがクラスメソッドで有り、此等のメソッドを呼び出すに当たって、インスタンス化されたオブジェクトは不要です。
演算に必要な数値は実引数で渡します。
ターゲットとなるオブジェクトの代わりにクラス名を書きます。

クラス名.メソッド名();
例: Math.random();

クラスメソッドは「static」の付かないフィールド変数、つまりインスタンスメンバを参照出来ません。

多角形の描き方

多角形を書くメソッドが、Graphicクラスに用意されています。

void drawPolygon(int[] xPoints, int[]yPoints, int nPoints)
void fillPolygon(int[] xPoints, int[]yPoints, int nPoints)
      xPoints:各頂点のx座標
      yPoints:各頂点のy座標
      nPoints:頂点の数

クラスメソッドの作成

クラスメソッドは、メソッド宣言の時に「static」修飾子を付けます。

例: public static void drawStar(int x, int y, Color c, Graphics g)

クラスメソッドは、メソッド内部で宣言した変数やオブジェクトと「static」の付いたグローバル変数(クラス変数)のみ参照出来ます。

ソース ダウンロード
MedamaCA7.java Medama10.zip MedamaCA7.html
StarWrite.java Star.zip
StarWrite2.java

戻る