Javaのインポートのサンプルです。
目次
説明 | インポートとは(import) |
staticインポートとは |
インポートとは(import)
import パッケージ名.クラス名またはインターフェース名 |
import パッケージ名.* |
- importを行うとパッケージ名を省略できます。
- importは、ファイルの先頭で宣言します。
- パッケージ名の後にアスタリスク(*)の指定も可能です。その場合パッケージ全体が対象になります。オンデマンドインポートと呼ばれます。
- importは読み込むということではなく、あくまでパッケージ名を省略する機能です。
- importがなくてもパッケージ名を記述すればエラーになりませんが通常は行いません。
importを使用しない場合
package test1;
import java.nio.charset.Charset;
public class Test1 {
public static void main(String[] args) {
Charset charset = java.nio.charset.StandardCharsets.UTF_8;
}
}
上記のコードでは、StandardCharsetsクラスのimport文がありません。
7行目はクラス名の前にパッケージ名を付けています。
importを使用した場合
package test1;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class Test1 {
public static void main(String[] args) {
Charset charset = StandardCharsets.UTF_8;
}
}
3行目で、importを使用しているため、8行目はパッケージ名を記述していません。
java.nio.charsetがパッケージ名でStandardCharsetsがクラス名です。
パッケージとは
- パッケージをつけることによってファイルを別々に管理できます。
- パッケージを宣言しない場合は、デフォルトパッケージになります。
- test2.sample1のようにドット区切りで名称を2つ以上続ける事が可能です。
staticインポートとは
import static パッケージ名.クラス名 |
- staticメソッドやstatic変数を呼び出す時にクラス名を省略できます。
→例:Mathクラスのceilメソッドはstaticメソッドですが、staticインポートを行うことによってMathクラスの記述を省略できます。 - インポートとは、名前解決のための情報です。クラスは取り込みません。
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インポートを使用します。
1.定数のクラス
package com.example.demo;
public class ResponseCode {
// インスタンスの生成を禁止する
private ResponseCode() {
}
public static final int RESPONSE_OK = 100;
public static final int RESPONSE_NG = 999;
}
2.staticインポートしているクラス
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を行っています。
8,9行目は、値のみの記述です。
定数を使用すると数値が文字列になるので可読性が上がります。
関連の記事
Java staticメソッド/変数 (newしないで使用できる)
Java static初期化ブロックと初期化ブロック
Java finalのサンプル(定数として使用/継承不可)