Java 静的インポート

WBOY
リリース: 2024-08-30 15:57:38
オリジナル
573 人が閲覧しました

Java 静的インポートは、任意のクラスの静的メンバーを直接使用するのに役立つメカニズムです。クラス内の静的項目は、別の修飾を必要とせずにモジュール内で簡単に参照できます。クラス名やオブジェクトは必要なく、これらの静的オブジェクトを直接使用できます。これは、コードの可読性を高め、コードの品質を向上させる良い方法です。必要でない限り、静的インポートを使用することはお勧めできません。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

Java での静的インポートの仕組み

静的インポートは、クラスの静的メンバーを直接使用するのに役立ちます。これにより、すべてのクラス メンバーにアクセスできるようになり、クラス名を繰り返し言及することなくそのクラスのメンバーを使用できるようになります。以下のコードは静的インポートの例です。 System.out である System クラスのモジュールを使用する必要はありません。代わりに、コード内で out.println を直接参照できます。System クラスを静的にインポートしているため、そのプログラムは正常に実行されます。

import static java.lang.System.*;
public class StaticImportInstance{
public static void main(String args[]){
out.println("Hi");//Now no need of System.out
out.println("We are using Static Import");
}
}
ログイン後にコピー

Java 静的インポートの例

静的インポート機能を使用する例をいくつか見てみましょう。

例 #1

組み込み Java Math クラスを静的にインポートします。

コード:

import static java.lang.Math.PI;
import static java.lang.Math.pow;
public class HelloStaticWorld {
public static void main(String[] args) {
System.out.println("Hello, Let us get introduced to the Static Import World!");
System.out.println("Let us consider  a circle with a diameter of 5 cm, it has");
System.out.println("a circumference of " + (Math.PI * 5) + " cm");
System.out.println("and the area of circle will be" + (Math.PI * Math.pow(2.5, 2)) + " sq. cm");
}
}
ログイン後にコピー

出力:

Java 静的インポート

上記のプログラムは Math クラスをインポートしています。さらに進んで、PI メソッドと POW メソッドも静的にインポートされます。これらを静的に使用すると、プログラム内でそれ以上の参照やオブジェクトを作成する必要がなくなります。インポートされたクラスは簡単に使用できます。 Math.PI を使用して PI の値を使用し、円の円周を求めました。また、円の面積を求めるのに役立つ PI メソッドと POW メソッドを再度使用して、円の面積を求めました。スクリーンショットを確認すると、円の円周と面積が表示されていることがわかります。

例 #2

組み込み Java Integer クラスのインポート

コード:

import static java.lang.Integer.MAX_VALUE;
import static java.lang.Integer.MIN_VALUE;
public class StaticImportInteger {
public static void main(String args[]) {
//Finding Max and Min without static import
System.out.println("We will find maximum value of an integer variable in Java without using" + "static import : " + Integer.MAX_VALUE);
System.out.println("We will find minimum value of an integer variable in Java without using" +
"static import : " + Integer.MIN_VALUE);
//Finding Max and Min without static import
System.out.println("We will find maximum value of an integer variable in Java with  using" +
"static import : " + MAX_VALUE);
System.out.println("We will find minimum value of an integer variable in Java with  using" +
"static import : " + MIN_VALUE);
}
}
ログイン後にコピー

出力:

Java 静的インポート

上記の例は、Integer クラスを静的にインポートしています。これは、このクラスのメソッドを直接使用でき、さらに参照することなくプログラム内で使用できることを意味します。まず、静的インポートを使用せずに通常の関数を使用して、整数の最大数と整数の最小数を見つけます。ここではクラス名を使用してから関数名を使用します。例を見ると、Integer.Min_Value と Integer.Max_Value が使用されています。次のコードでは、静的インポートを利用します。ここで確認すると、MAX_VALUE メソッドと MIN_VALUE メソッドを直接使用していることがわかります。結果は両方とも同じになります。これは、さまざまな Java 関数を使用できる 2 つの方法があることを示しています。

例 #3

静的インポート使用時のあいまいさ

コード:

import static java.lang.Integer.*;
import static java.lang.Long.*;
public class HelloAmbiguity{
public static void main(String[] args) {
System.out.println(MAX_VALUE);
}
}
ログイン後にコピー

出力:

Java 静的インポート

同じクラスの静的メンバーがインポートされる場合、上記のような状況が発生する可能性があります。これが発生すると、コンパイラはどのメンバーを選択すればよいか混乱します。その結果、同じクラスのメンバーに関しては曖昧さに直面します。上の例では、lang クラスが 2 回インポートされています。使用するさまざまなメンバーは Integer と Long です。 main 関数が呼び出されるとき、コンパイラは Integer と Long のどちらのメンバーを選択するか混乱します。特定のクラス名がないと、どのメンバーを使用すべきかを計算できません。したがって、上のスクリーンショットでわかるように、エラーがスローされます。

メリット

静的メソッドを使用することには多くの利点があります。いくつか例を挙げると、以下のとおりです。

  • どのインスタンスにも依存せず、個別に使用した多くのクラスに一緒にアクセスできます。
  • 関連する作業を行うことになっているメソッドをインポートすることで、これらのステートレス ユーティリティをグループ化し、一貫性を持たせることで、パラメーターや戻り値の型を直接使用することもできます。
  • 静的インポートを利用してインポートされたメソッドの方がパフォーマンスが優れています。明示的な null チェックは必要ありません。彼らはより速いです。
  • 静的メソッドを使用すると、コードが読みやすくなります。これは、含まれるクラス名の数が少ないためです。
  • これは、再利用を容易にするのに役立ちます。コードは再利用でき、クラスを静的にインポートするだけで済みます。

結論

静的インポート メソッドは、クラスの参照を作成せずに、クラスのメンバーを使用する簡単な方法です。クラスをインポートするときに、これらのメソッドを直接使用できます。静的インポートにより、ユーザーは必要なキーストロークの数が少なく、より効率的なコードを作成できるようになります。静的インポートを使用することもできますが、要件にその必要がある場合にのみ使用することをお勧めします。

以上がJava 静的インポートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート