【Java】グローバル変数を宣言する方法について解説!ローカル変数と比較!
変数にはプログラム上のどこからでもアクセスできるグローバル変数と、プログラム上で使用する範囲が制限されるローカル変数というものがあります。
しかしJavaには、グローバル変数という名前の変数は存在しません。
その為、publicとstaticを使うことでグローバル変数に類似した変数を作成し、使用することができます。
今回はグローバル変数を宣言する方法について解説し、ローカル変数と比較していきます。
目次
グローバル変数とは
先ほども言いましたが、グローバル変数とはプログラムのどこからでも参照できる変数のことを言います。
その為、グローバル変数は括弧内で定義していなくてもどこでも使用することができます。
グローバル変数の書き方
グローバル変数の構文は下記となります。
1 |
public static 型 変数名 = 値; |
先頭にpublic staticと書くことでグローバル変数として定義することができます。
しかし、どこからでも参照できるという事は影響が受けやすいという事なので、使う際には注意が必要です。
ローカル変数とは
ローカル変数はコード内の限定された範囲でしかアクセスできない変数のことを言います。
その為、クラスの中で定義した変数やif文やfor文の中で宣言した変数はその括弧の中でしか使用できません。
ローカル変数の書き方
ローカル変数の構文は下記となります。
1 |
型 変数名 = 値; |
これは普段使用している変数の定義の仕方だと思います。
その為、普段使用している変数はローカル変数となります。
グローバル変数を使用したサンプルコード
グローバル変数を使ったサンプルコードを紹介します。
GlobalVal.java
1 2 3 4 5 6 |
//グローバル変数を持つクラス public class GlobalVal { //グローバル変数 public static int countG = 0; } |
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// グローバル変数を使用する public class Main { public static void main(String[] args) throws Exception { int cnt = 0; // GlobalVal.countGが10以上になるまで練り返し処理を行う while (GlobalVal.countG < 10) { cnt++; System.out.println(cnt + "回目 GlobalVal.countG=" + GlobalVal.countG); // GGlobalVal.countGを1増やす GlobalVal.countG++; // 約50%の確率でGlobalVal.countGを1増やす Main.plusOne(); } } // 乱数を使って約70%の確率でGlobalVal.countGを1増やすメソッド static void plusOne() { if (Math.random() > 0.7) { System.out.println("カウントアップ"); GlobalVal.countG++; } } } |
出力結果
1回目 GlobalVal.countG=0
2回目 GlobalVal.countG=1
3回目 GlobalVal.countG=2
4回目 GlobalVal.countG=3
カウントアップ
5回目 GlobalVal.countG=5
6回目 GlobalVal.countG=6
カウントアップ
7回目 GlobalVal.countG=8
8回目 GlobalVal.countG=9
グローバル変数を使ってカウントを行ってます。
なお、70%の確率でカウントアップが行われるので実行結果は毎回変わります。
ローカル変数を使用したサンプルコード
Main.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// ローカル変数を使用する public class Main { public static void main(String[] args) throws Exception { int count = 0; int cnt = 0; // countが10以上になるまで練り返し処理を行う while (count < 10) { cnt++; System.out.println(cnt + "回目 count=" + count); // countを1増やす count++; // 約70%の確率でcountを1増やす Main.plusOne(count); } } // 乱数を使って約70%の確率でcountを1増やすメソッド static void plusOne(int count) { if (Math.random() > 0.7) { System.out.println("カウントアップ"); count++; } } } |
出力結果
1回目 count=0
2回目 count=1
カウントアップ
3回目 count=2
4回目 count=3
5回目 count=4
6回目 count=5
7回目 count=6
8回目 count=7
9回目 count=8
カウントアップ
10回目 count=9
今回のポイント
public staticでグローバル変数を宣言する
グローバル変数を宣言するには「public staticフィールド」として宣言する
• グローバル変数とはコード中全ての場所からアクセスできる変数である
• 変数の定義の前にpublicでstaticなフィールドを用意することでグローバル変数として使用できる(厳密には、Javaの変数は、グローバル変数というのは在在しない)
• ローカル変数とはコード内の限定された範囲でしかアクセスできない変数である。
• ローカル変数はクラスの中で定義した変数やif文やfor文の中で宣言した括弧の中でしか使用できない
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。