Javaのstaticメソッドとstatic変数のサンプルです。
クラスをインスタンス化せずに使用できます。
目次
サンプル | staticメソッドとは(newしないでメソッドを使用) |
static変数とは(newしないで変数を使用) | |
staticとfinalを使用して定数にする |
staticメソッドとは(newしないでメソッドを使用)
class クラス名{ static 戻り値の型 メソッド名() { } } |
- staticメソッドは、クラスをインスタンス化せずにメソッドを使用できます。
- クラスメソッドや静的メソッドとも呼ばれます。staticは「静的」という意味です。
- メソッドの前にstatic修飾子をつけます。
staticメソッドのサンプルです。
package test1;
class Color {
static void print(){
System.out.println("red");
}
}
public class Test1 {
public static void main(String[] args) {
Color.print(); // red
}
}
4行目は、staticメソッドです。
11行目は、クラスをインスタンス化していませんが値が表示されます(newしていない)。
クラス名.メソッドで実行します。
4行目のstaticを削除すると11行目でコンパイルエラーになります。
(非staticメソッドを参照できません)
static変数とは(newしないで変数を使用)
class クラス名 { static 変数の型 変数名; } |
- static変数は、クラスをインスタンス化せずに変数を使用できます。
- クラスフィールドや静的フィールドとも呼ばれます。
- 変数の前にstatic修飾子をつけます。
static変数のサンプルです。
package test1;
class Ball {
static String color = "red";
}
public class Test1 {
public static void main(String[] args) {
System.out.println(Ball.color); // red
}
}
4行目は、static変数です。
9行目は、クラスをインスタンス化していませんが値が表示されます(newしていない)。
クラス名.変数名で表示します。
4行目のstaticを削除すると9行目でコンパイルエラーになります。
(非staticのフィールドを参照できません)
staticとfinalを使用して定数にする
class クラス名 { static final 変数の型 変数名 = 値; } |
- staticとfinalを変数の前につけて定数として使用します。
- 定数は、値を変更することができません。再代入不可です。
→finalをつけると変数に対して再代入が不可になります。 - 定数名は、変数と区別が付くようにするため、大文字にします。
単語で区切りがある場合はアンダスコア(_)をつけます。
定数のサンプルです。
package com.example.demo;
public class ResponseCode {
// インスタンスの生成を禁止する
private ResponseCode() {
}
public static final int RESPONSE_OK = 100;
public static final int RESPONSE_NG = 999;
}
5行目は、コンストラクタをprivateにしてインスタンスの生成ができないようにしています。
上記の定数を利用するファイル
package com.example.demo;
import static com.example.demo.ResponseCode.*;
public class Test1 {
public static void main(String[] args) {
System.out.println(RESPONSE_OK); // 100
System.out.println(RESPONSE_NG); // 999
}
}
3行目は、staticのimportを行っています。
定数を使用すると数値が文字列になるので可読性が上がります。
関連の記事
Java static初期化ブロックと初期化ブロック
Java インポートとstaticインポートのサンプル(import)
Java finalのサンプル(定数として使用/継承不可)