javaの変数宣言、定数、スコープ範囲について とっても簡単なjava 【第7回】

この記事は2013年4月1日に書かれたものです。内容が古い可能性がありますのでご注意ください。


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行目の値は代入できません。(有効範囲外です。)
この場合、コンパイルエラーとなります。

本日はここまでとします。

  • このエントリーをはてなブックマークに追加

PAGE TOP