welcome: please sign in
location: "配列の宣言と初期化"の差分
2と10のリビジョン間の差分 (その間の編集: 8回)
2011-09-20 02:34:43時点のリビジョン2
サイズ: 2192
編集者: masahiko
コメント:
2011-09-26 06:23:11時点のリビジョン10
サイズ: 2594
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 4: 行 4:
変数の宣言は次のような形式で行うと説明しました。 ----
=== 配列の宣言 ===

変数の宣言は次のような形式で行ました。
行 7: 行 10:
Javaでは別の書き方もあります。 配列も同様の形式で宣言できます。
行 9: 行 12:
1つは変数の宣言と代入(初期化)を同時に行うものです。 配列の型は
 . 構成要素の型の後ろに [ ] をつけたものです。
行 11: 行 15:

 . double型の配列 x の宣言
 . int型の配列 aとb の宣言
行 12: 行 19:
 int k = 1000;
 }}}
は次と同じ結果になります。
 {{{#!java
 int k;
 k = 1000;
 double[] x;
 int[] a, b;
行 20: 行 23:
宣言の構文と代入文の構文をつなげた形をしています。
代入文はこのような構文でした。
 {{attachment:koubun04.png}}
この文の前に'''型'''が書かれた形です。
----
=== 配列の割り当て ===
配列の割り当て(作成)はnewを使って行います。
 . newは新しいオブジェクトを作るときに使います。

 . double型の配列 x に1000個からなる配列を割り当てる。
 {{{#!java
 double[] x;
 x = new double[1000];
 }}}
 . int型の配列 a に100個からなる配列を、b に200個からなる配列を割り当てる。
 {{{#!java
 int[] a, b;
 a = new int[100];
 b = new int[200];
 }}}
----
=== 例 ===
配列 a を宣言すると、変数 a の値を保持する領域がとられる。
 {{{
 int[] a;
 }}}
 . {{attachment:hairetu1.png}}
new により指定の大きさの配列が作られる。
 {{{
 new int[100];
 }}}
 . {{attachment:hairetu2.png}}
作られた配列オブジェクトのアドレスを変数aに代入することで、aを用いて配列を利用できるようになる。
 {{{
 int[] a;
 a = new int[100];
 }}}
 . {{attachment:hairetu3.png}}
行 25: 行 58:
配列の宣言と割り当てを一度に行う書き方もこの構文に対応します。 宣言文と実行文
 * int[] a; は宣言文です。
 * a = new int[100]; は実行文です。
配列を実際に割り当てるのは実行文の方です。
したがって、配列の大きさは実行時に指定できることが分かります。
行 27: 行 64:
----
=== 配列の宣言と初期化 ===

配列の宣言と割り当てを一度に行う構文もあります。

 {{attachment:hensu6.png}}
行 31: 行 75:
この書き方を使うと、for文でくりかえしのためにつかう変数をその場で宣言することができます。
この場合、ここで宣言した変数はこのブロック内でしか使えません。

 {{{#!java
 for (int i = 0; i < 5; i++)
 {
   // i はこのブロック内でしか使えない
   ...
 }
 }}}
----
変数宣言の構文は次のようになります。

 {{attachment:hensu6.png}}
行 52: 行 82:
配列 k の大きさは k.length で知ることができます。
行 54: 行 84:
=== 定数 ===
定数は値を変更できない変数として定義します。
=== 補足 ===
配列の宣言は
 {{{
 int[] a;
 }}}
ではなく
 {{{
 int a[];
 }}}
と書く方法もあります。
行 57: 行 95:
修飾子として static final を付け、変数の定義と同時に値を初期化します。

記述する位置はclassの内側でmainなどのメソッド(関数)の外側です。
<<BR>>classのすぐ後に書けばよい。

 {{{#!java
 public class Sample {

     static final int XSIZE = 100;

     public static void main(String[] args) {
         ...
     }
 }
 }}}
static や final は修飾子と呼ばれます。
意味は次のとおり。

 static :: 静的
 final :: 変更できない
 public :: 他からも参照できる
1番目の書き方は'''int配列型の変数a'''、
2番目の書き方は'''int型aの配列'''
と読めます。
どちらでもかまわないのですが、1番目の方がなんとなくオブジェクトっぽくて、
説明の図とあっているように見えませんか。

配列の宣言と初期化


配列の宣言

変数の宣言は次のような形式で行いました。

  • hensu1.png

配列も同様の形式で宣言できます。

配列の型は

  • 構成要素の型の後ろに [ ] をつけたものです。

  • double型の配列 x の宣言
  • int型の配列 aとb の宣言
       1  double[] x;
       2  int[] a, b;
    


配列の割り当て

配列の割り当て(作成)はnewを使って行います。

  • newは新しいオブジェクトを作るときに使います。

  • double型の配列 x に1000個からなる配列を割り当てる。
       1  double[] x;
       2  x = new double[1000];
    
  • int型の配列 a に100個からなる配列を、b に200個からなる配列を割り当てる。
       1  int[] a, b;
       2  a = new int[100];
       3  b = new int[200];
    


配列 a を宣言すると、変数 a の値を保持する領域がとられる。

  •  int[] a;
  • hairetu1.png

new により指定の大きさの配列が作られる。

  •  new int[100];
  • hairetu2.png

作られた配列オブジェクトのアドレスを変数aに代入することで、aを用いて配列を利用できるようになる。

  •  int[] a;
     a = new int[100];
  • hairetu3.png

宣言文と実行文

  • int[] a; は宣言文です。
  • a = new int[100]; は実行文です。

配列を実際に割り当てるのは実行文の方です。 したがって、配列の大きさは実行時に指定できることが分かります。


配列の宣言と初期化

配列の宣言と割り当てを一度に行う構文もあります。

  • hensu6.png

  •    1  double[] x = new double[1000];
    


配列の初期値

配列の初期値は次のように記述して指定できます。

  •    1  int[] k = { 5, 3, 10, 21, 2 };
    

この例では、大きさ5の配列が作られ、k[0]=5; k[1]=3; ... に初期化されます。


補足

配列の宣言は

  •  int[] a;

ではなく

  •  int a[];

と書く方法もあります。

1番目の書き方はint配列型の変数a2番目の書き方はint型aの配列 と読めます。 どちらでもかまわないのですが、1番目の方がなんとなくオブジェクトっぽくて、 説明の図とあっているように見えませんか。

配列の宣言と初期化 (最終更新日時 2011-10-12 00:25:22 更新者 masahiko)