Javaのstaticインポートのサンプルです。
目次
staticインポート
| import static パッケージ名.クラス名 |
- staticメソッドやstatic変数を呼び出す時にクラス名を省略できます。
→例:Mathクラスのceilメソッドはstaticメソッドですが、staticインポートを行うことによってMathクラスの記述を省略できます。 - インポートとは、名前解決のための情報です。クラスは取り込みません。
- 以下は、以下はJava8 API仕様のMathクラスのceilメソッドのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/Math.html#ceil-double- - Java staticメソッドとstatic変数のサンプル
コード
Staticインポートのサンプルです。
package test1;
import static java.lang.Math.ceil;
//import static java.lang.Math.*;
public class Test1 {
public static void main(String[] args) {
double a = 2.26;
System.out.println(Math.ceil(a)); //3.0
System.out.println(ceil(a)); //3.0
}
}
3行目は、Staticインポートです。
4行目のように、アスタリスク(*)を使用することも可能です。オンデマンドインポートと呼ばれます。
11行目は、Mathクラスとceilメソッドを記述しています。実行できます。
13行目は、ceilメソッドのみ記述しています。Mathクラスの記述がありませんが実行できます。ceilメソッドは小数第一位で切り上げています。
staticインポートをしない場合
Staticインポートをしない場合のサンプルです。
package test1;
public class Test1 {
public static void main(String[] args) {
double a = 2.26;
System.out.println(Math.ceil(a)); //3.0
// System.out.println(ceil(a)); //コンパイルエラー
}
}
8行目は、Mathクラスとceilメソッドを記述しています。実行できます。
10行目は、ceilメソッドのみ記述しています。Mathクラスの記述がないのでコンパイルエラーになります。
関連の記事
Java staticメソッドとstatic変数のサンプル
Java static初期化ブロックと初期化ブロックのサンプル
Java final修飾子のサンプル