コンストラクタと new


オブジェクトの生成の最も一般的な方法は、キーワード new によるものです。 次の例は Colorクラスの新しいオブジェクトを生成する例です。

Color brown = new Color( 200, 100, 0 );
Color cream = new Color( 1.0f, 0.9f, 0.8f );

 new の後に来るのは、常に「コンストラクタ」と呼ばれる特別のメソッドです。 コンストラクタの名前は、生成したいオブジェクトのクラス名と同じです。 コンストラクタの引数の型や個数は、クラスごとに決められたルールに従います。 一般に複数の種類のコンストラクタが用意されているのが普通です。 これによって値が省略された場合でもデフォルト値の設定が自動的に行える ようにします。

配列も「特殊なクラス」と考えてください。配列のサイズを与えてメモリを 確保する時にも new を使います。


int data[] = new int[100]       // int型のデータ 100個を格納する配列 data[]
int state[][] = new int[9][9];  // int型の 9x9 の二次元配列
Color colors[] = new Color[24]; // 24個の Colorクラスのオブジェクトの配列

配列として確保したオブジェクトの配列の1個1個は、やはり new とコンストラクタによって初期化する必要があります。

new とコンストラクタを用いないでもオブジェクトが存在することもあります。 アプレットの paint() メソッドの Graphicsクラスのオブジェクトのように、 外部から与えられるような場合や、FontMetrics のオブジェクトのように Fontのオブジェクトと同時に付随して生成されるものもあります。 Colorクラスの red,greenなどの static なメンバーは、 やはり Colorクラスのオブジェクトで、コンストラクタなしで利用できます。