各種変数や定数の宣言と初期化、有効範囲、配列(一次元配列)の生成と使用

最終更新日: 2019年9月15日 14時30分

目次

講義の目的

Java言語で変数が利用できる

Java言語で定数が利用できる

Java言語のスコープ範囲が理解できる

Java言語で配列が利用できる

1. 変数

Javaプログラミングにおける変数の定義は以下です。

  • * 値の設定、取得ができる
  • * 値に基本データ型、参照型を利用できる
  • * 変数は、自由に名前をつけることができる
  • * 利用のために宣言が必要である

変数は処理の途中で値の変更が必要な場合に使います。

変数の宣言は以下の文法です。

データ型 変数名;

実際のコードで書きます。

// データ型 変数名;
int sample;

上記のコードは、「データ型」が「基本データ型のint」、「変数名」が「sample」で宣言しています。

作成した変数に値を代入するには以下のように記載します。

変数名 = 値;

実際のコードで当てはめます。

// データ型 変数名;
int sample;
// 変数名 = 値;
sample = 10;

変数sampleに値10を代入しています。

変数は、宣言と初期化を同時におこなうこともできます。

データ型 変数名 = 初期値;

実際にコードで書いてみます。

// データ型 変数名 = 初期値;
int sample2 = 20;

変数sample2を宣言して、初期値10を代入しています。

アクセス修飾子

Javaではアクセス修飾子を付加して、変数のアクセスできる範囲を決定できます。

この講義で説明した変数はアクセス修飾子を省略しているので、パッケージ内部からのみ自由にアクセスできるパッケージプライベートです。

この講義ではまだ覚える必要はありませんが、実際のプログラミングではアクセス修飾子を追加して変数を使うケースが多いということは覚えておいてください。

2. 定数

定数は固定値を扱うために使用します。

例えば、緊急時に警察に通報するための緊急通報ダイヤル110を宣言すると仮定します。この値は不変で変更する必要がありません。こういった値の変更が必要ない変数は定数を使います。

final データ型 定数名 = 初期値;

finalで指定した値は変更できません。つまり変数と異なり値を再代入はできません

実際にコードで書いてみます。

final int POLICE_PHONE_NUMBER = 110;

int型の定数POLICE_PHONE_NUMBERに値110が代入されます。

この定数POLICE_PHONE_NUMBERを他の値で上書きしてみます。

final int POLICE_PHONE_NUMBER = 110;
POLICE_PHONE_NUMBER = 120;

このコードはコンパイルに失敗します。

Error:(35, 9) java: final変数POLICE_PHONE_NUMBERに値を代入はできません

つまり定数を使うと、他の値で上書きされることがないので、どこでも安心して定数を使えます。

3. 有効範囲

変数の有効範囲(スコープ)とは、定義した変数の有効な範囲の事です。

例えばメソッドの中で宣言される変数は、 ローカル変数 として扱われます。ローカル変数は、変数を宣言したブロックの中やfor文の中でのみ有効です。

コードで確認します。

{
    int nest_scope = 1;
}

中括弧(curly braces)の中で宣言したint型のローカル変数nest_scopeは、中括弧内のみ参照できます。

{
    int nest_scope = 1;
    // 中括弧内で利用しているので利用できる。
    System.out.println(nest_scope);
}

実行して変数を出力します。

1

出力されました。

次に中括弧の外(スコープの外)で変数nest_scopeを利用します。

{
    int nest_scope = 1;
}
System.out.println(nest_scope);

このコードはコンパイルに失敗します。

このように変数には有効範囲(スコープ)があるので、実装者は変数の宣言スコープを意識して実装する必要があります。

4. 配列(一次元配列)の生成と使用

配列はひとつの変数に対して、複数のデータを格納できます。

配列変数の宣言は以下のようにします。

データ型 変数名 [];

実際にコードで書いてみます。

int array[];

配列変数は宣言しただけでは利用できません。配列の領域(大きさ)を指定して配列オブジェクを生成する必要があります。オブジェクトの生成は以下のようにします。

変数名 = new データ型 [size];

sizeは、配列の要素数を指定します。

実際にコードで書いてみます。

array = new int [3];

要素数は0から数えられるので、要素を指定する添字はsizeの-1までの数です

System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);

要素数より大きい配列の数を指定すると、エラーが発生します。

System.out.println(array[3]);

実行します。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3

ArrayIndexOutOfBoundsExceptionが表示されました。このクラスは存在しない配列にアクセスした場合に発生するエラーです。

上記の場合だと、配列のindexは 0, 1, 2 の3つの要素しかないのに、存在しない4つ目の要素 index 3 を指定したのでエラーが生じています。

5. まとめ

この講義では、Java言語での各種変数や定数の宣言と初期化、有効範囲、配列(一次元配列)の生成と使用について学習しました。

この講義の内容はJavaでプログラムを書くうえで非常に重要な要素になります。必ずマスターしてください。

演習

この講義に関連する演習問題を用意しました。理解度を確認してください。

演習