new演算子で要素の個数を指定して配列を作成する
配列変数を宣言しただけでは、中身は空ですが、new演算子を使用すれば要素の数を指定して配列を作成することができます。
new演算子で要素の個数を指定して配列を作成する 目次
1.配列オブジェクトの作成
配列変数の宣言だけをしただけでは、要素の数が何個になるか指定できていません。また、最初から各要素の値を完全に指定できる場合はいいのですが、中身が決まっていなくて(後から代入する)とりあえず要素数だけ決まっている場合もあるかと思います。
配列を作成する時に、中身の値は特に指定せずに要素の数だけ指定するには、「new」という演算子を使用します。先に配列変数だけを宣言した後に、new演算子を使います。
new演算子で作成した配列の各要素は初期化されます。「初期化される」とは、その型の初期値が代入されるということです。int型なら0です。
int[] intArray;
intArray = new int[5];
package pac01; public class HelloWorld { public static void main(String[] args) { // 配列変数を宣言 int[] intArray; // 要素数3の配列を作成し、その参照をintArrayに代入する intArray = new int[5]; // 各要素の中身は0になっている for(int i = 0; i < intArray.length; i++ ){ System.out.println(intArray[i]); } } } ------------------------------------------------------------- 0 0 0 0 0
2.new演算子は参照を返す
配列変数を宣言しただけでは、変数を作成しただけでその中身は空です。配列変数は参照ですが、実体を指し示す参照もありません。配列オブジェクトの実体を指し示す参照を格納する為の変数を作っただけ、ということになります。
その次にnew int[5];を書いていますが、new演算子は配列オブジェクトを作成する演算子で、要素数5個のint型配列を作成することになります。折角オブジェクトを作成しても、それを使用できなければ意味が無いですから、new演算子を実行すると作成したオブジェクトの参照が返ってきます。配列変数は参照を格納する為の変数ですから、代入している訳です。
参照を返す、という表現が難しいかもしれませんが、「1 + 1」などと同じと考えて大丈夫です。例えば「intArray = 1 + 1」はintArrayに2が格納されることは分かりますよね?これは、「1 + 1」が「2」を返す処理なので、それをintArrayに代入するという説明になります。new演算子も作成したオブジェクトの参照を返す(処理結果)ので、それを配列変数に代入する、ということです。
これ以降、配列変数intArrayを使えば要素数5個のint型の配列を操作できるようになります。
3.配列変数の宣言と同時に配列オブジェクトを作成する
配列変数の宣言と、newによる配列オブジェクトの作成は同時に行うことができます。この書き方の方がよく使われます。
package pac01; public class HelloWorld { public static void main(String[] args) { // 配列変数の宣言と同時に配列オブジェクトを作成する int[] intArray = new int[5]; } }
4.それぞれの型の初期値
new演算子で配列を作成した際は、各要素は初期値になると言いましたが、それぞれの型の初期値を以下に示します。
型 | 初期値 |
---|---|
byte,short,int,long | 0 |
float,double | 0.0 |
boolean | false |
char | \u0000(null) |
String | null |
各種参照型 | null |
最近のコメント