2013.04.01
javaの変数宣言、定数、スコープ範囲について とっても簡単なjava 【第7回】
javaの変数宣言、定数、変数のスコープ範囲
前回javaの変数やデータ型について解説しました。
今回はそれらの知識を使って変数を宣言し、値を代入してみます。
変数の使い方
変数宣言とは変数を用意することを指し、代入とは変数に値を格納することを指します。
したがって、変数を宣言し値を代入するという流れになります。
また、宣言した変数にあらかじめ初期値を入れておくことも可能で、これを変数の初期化といいます。
初期化の方法は宣言と併せて一行で記述できます。
ソースコードは以下のように記述します。
- 変数の宣言と値の代入
//変数宣言 データ型 変数名; //作成した変数に値を代入 変数名 = 値;
データ型 変数名 = 初期値;
実際は次のように使用します。
- 変数の宣言と値の代入
//int型の変数numberを宣言 int number; //宣言したint型のnumberに3を代入 number = 3;
//int型の変数numberを作成し、初期値に0を用いて初期化処理を行っている。 int number = 0; //String型の変数strを作成し、初期値にサンプルという文字列を用いて初期化処理を行っている。 String str = "サンプル":
簡単ですね。
ちなみに次の場合、コンパイルエラーになります。
int moji = "こんにちは";
なぜだかわかりますか?
変数mojiのデータ型はint型なのに、文字列で初期化しようとしているからです。
※データ型に関しては第6回を参照してください。
定数について
定数は固定された値を取り扱うために使用します。
ソースコード内ではfinalを修飾子を用いて表現します。
- 定数の構文
final データ型 定数名 = 初期値;
//10という数値が格納されているint型の定数num final int num = 10; //項目1という文字列が格納されたString型の定数str final String str = "項目1";
ここで指定した値(初期地)は変更できません。
つまり変数と異なり、値を再代入することはできません。
- 変数の場合、再代入は可能
次のコードの場合、numは2となる。
//定数 int num = 10; num = 2;
次のコードの場合、numは10のままとなる。
//定数 final int num = 10; num = 2;
変数のスコープ範囲
上で変数の宣言方法と初期化方法を御紹介しました。
変数を宣言すると変数を使用可能となりますが、どこでも使用可能というわけではありません。
変数には有効範囲があり、その範囲をスコープ範囲と呼びます。
次のコードを確認してください。
public class HelloWorld{ //3行目から5行目で変数numは有効 public static void main(String[] args){ int num = 10; num = 350; } //定義しているメソッド外(別のメソッド内)であるため、numにアクセス不可 public static void read(){ num = 200 } }
int型の変数numはmainメソッド内で定義しています。
したがって、readメソッドからはアクセスできません。
それでは次のソースコードを確認してください。
public class HelloWorld{ public static void main(String[] args){ { int num = 0; num = 34; } num = 100; } }
上のソースコードでは4行目でint型のnumを初期化しているので、変数numの有効範囲は6行目までとなります。
したがって8行目の値は代入できません。(有効範囲外です。)
この場合、コンパイルエラーとなります。
本日はここまでとします。