staticな定数、メソッドの呼び出し

今回は、javaのimport文の拡張機能のお話です。Javaの資格試験では結構出てくる話題です。

あるクラスのstaticな定数やメソッドを使いたい場合は、通常はクラス名.メソッド名またはフィールド名

と記述します。

例としてMathクラスの円周率の定数PIを使う場合は、次の様なコードになります。

double radius =  4.3;       //円の面積を計算 
double m = radius * radius * Math.PI; 

または、IntegerクラスのparseIntメソッドを使って、文字列から数値へ変換したい場合は

int a = Integer.parseInt(args[0]);  

import static文を使う

短いコードだと上記の使い方でさほど気にならないですが、むしろ普通の使い方です。コードが長くなって例えば定数PIを多数の箇所で

記述しなければならい場合、各行でMath.PIと書いていては冗長となる場合に、import static文を使うと便利です。

staticなメソッド、フィールドをimport static文で宣言してしまうと、コード中はクラス名を省力する書き方ができます。

通常にimport文と同じでクラス宣言する前に、以下のように記述します。

import static java.lang.Integer.parseInt; 
import static java.lang.Math.PI; 

コード中では、クラス名を使わずにstaticなフィールド・メソッドを記述できます。

double radius =  4.3;         //円の面積を計算 
double m = radius * radius * PI;      System.out.println(m); 

上記の様に定数PIがMath.PIと書かずに良くなりました。