Javaのstaticメソッドとstatic変数のサンプルです。
目次
staticメソッド
class クラス名{ static 戻り値の型 メソッド名() { } } |
- メソッドの前にstatic修飾子をつけます。
- クラスをインスタンス化せずにメソッドを使用できます。
- クラスメソッドや静的メソッドとも呼ばれます。
- staticは、「静的」という意味です。
コード
staticメソッドのサンプルです。
package test1;
class Sample {
static void runSample(){
System.out.println("テスト1");
}
}
public class Test1 {
public static void main(String[] args) {
Sample.runSample(); // テスト1
}
}
4行目は、staticメソッドです。
11行目は、クラスをインスタンス化していませんが値が表示されます(newしていない)。クラス名.メソッドで実行します。
4行目のstaticを削除すると11行目でコンパイルエラーになります。(非staticメソッドを参照できません)
static変数
class クラス名 { static 変数の型 変数名; } |
- 変数の前にstatic修飾子をつけます。
- クラスをインスタンス化せずに変数を使用できます。
- クラスフィールドや静的フィールドとも呼ばれます。
コード
static変数のサンプルです。
package test1;
class Sample {
static int cnt1 = 100;
}
public class Test1 {
public static void main(String[] args) {
System.out.println(Sample.cnt1); //100
}
}
4行目は、static変数です。
9行目は、クラスをインスタンス化していませんが値が表示されます(newしていない)。クラス名.変数名で表示します。
4行目のstaticを削除すると9行目でコンパイルエラーになります。(非staticのフィールドを参照できません)
定数 (static final)
class クラス名 { static final 変数の型 変数名 = 値; } |
- 定数は、値を変更することができません。再代入不可です。
- 変数の前にstatic修飾子とfinal修飾子をつけます。
- 定数名は、変数と区別が付くようにするため、大文字にします。
- 単語で区切りがある場合はアンダスコア(_)をつけます。
コード
定数のサンプルです。
package test1;
class Sample {
static final int CNT = 100;
}
public class Test1 {
public static void main(String[] args) {
// Sample.CNT = 200;
System.out.println(Sample.CNT); //100
}
}
4行目は、定数です。
9行目は、定数に対して値を代入しようとしていますができません。コンパイルエラーになります。
関連の記事
Java static初期化ブロックと初期化ブロックのサンプル
Java staticインポートのサンプル
Java final修飾子のサンプル