
上記悩みを解決します。
執筆者

Javaのstaticの意味と用途
Javaのstaticは「クラス間で共有している情報」の事です。
staticにも色々と種類がありますが、「staticフィールド」「staticメソッド」が主に使われますので、図解しつつ、用途を説明します。
staticフィールド
イメージとしては、下記の通り。各クラスから、1つの共有メモリを指し示す形です。
また、シンプルなプログラム例と結果を確認して下さい。
プログラム例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Mainクラス public class Main { public static void main(String[] args) { // インスタンス生成(1回目) staticTest test1 = new staticTest(); test1.countUp(); // カウントアップ System.out.println(test1.getCounter()); // インスタンス生成(2回目) staticTest test2 = new staticTest(); System.out.println(test2.getCounter()); } } |
1 2 3 4 5 6 7 8 9 10 11 12 |
// staticTestクラス class staticTest { private static int counter = 0; public void countUp() { this.counter++; } public int getCounter() { return this.counter; } } |
実行結果
1 2 |
1 1 |
上記プログラム例では「Main」クラス内で「staticTest」クラスのインスタンスを2つ作成し、「counter」のフィールドにアクセスしています。
インスタンスを2つ生成していますが、staticで宣言した「counter」フィールドは、初回にカウントアップした値が残っている事を確認出来ます。
staticフィールドの用途
staticフィールドは主に「定数」を作成する際に使用されます。staticで宣言したフィールドは「クラス名.フィールド名」とする事で使用可能です。
使い勝手が良く、定数はどのクラスからでも共通の値として扱われる為です。
実際のプログラムをみてみましょう。
参考定数‥宣言時に決めた値をコードの中で後から変更することができない値
プログラム
1 2 3 4 5 6 7 |
// Mainクラス public class Main { public static void main(String[] args) { // クラス名.フィールド名でアクセス System.out.println(TEISU.NAME); } } |
1 2 3 4 |
// 定数クラス final class TEISU { public static final String NAME = "名前"; } |
実行結果
1 |
名前 |
メモ
staticメソッド
staticメソッドは利用頻度の多いメソッドにstaticを付ける事で、簡易的にアクセスが出来る様になります。Javaの標準で用意されているクラスだとIntegerクラスが有名です。
では、プログラムと実行結果を確認しましょう。
プログラム
1 2 3 4 5 6 7 8 |
public class Main { public static void main(String[] args) { String str = “10”; // クラス名.メソッド名でアクセス。newは不要 System.out.println(Integer.valueOf(str)); } } |
実行結果
1 |
10 |
Javaのstaticについては大体理解出来たでしょうか。
それでは、今回の記事のまとめです。
まとめ
・staticフィールドは「クラス名.フィールド名」でアクセスが可能
・staticメソッドは「クラス名.メソッド名」でアクセス可能
・staticは利用頻度が多い場合に利用する。
以上になります。

Java入門にオススメの書籍2冊【現役エンジニアが厳選選択】
Javaでオススメの資格は「OCJ-P」です【実体験あり】