package 語句:java
該語句必須做爲源文件的第一條非註釋性語句,一個源文件只能指定一個包,即只能包含一條package語句。編程
import 和import static 關鍵字:spa
引入import關鍵字是爲了簡化編程。若是沒有import關鍵字的存在,那麼若是咱們在實例化另外一個包中的類時,必須指明其所在的位置。對象
例如:java.io.InputStream is = new java.io.InputStream.blog
import static靜態導入是JDK1.5中的新特性。通常咱們導入一個類都用 import com.....ClassName;而靜態導入是這樣:import static com.....ClassName.*;這裏的多了個static,還有 就是類名ClassName後面多了個 .* ,意思是導入這個類裏的靜態方法。固然,也能夠只導入某個靜態方法,只要把 .* 換成靜態方法名就好了。而後在這個類中,就能夠直接用方法名調用靜 態方法,而沒必要用ClassName.方法名 的方式來調用。
這種方法的好處就是能夠簡化一些操做,例如打印操做System.out.println(...);就能夠將其寫入一個靜態方法print(...),在使用時直接print(...)就能夠了。下面是一個具體的例子。編譯器
在靜態導入以前: public class TestStatic { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE); } }
在靜態導入以後:io
import static java.lang.System.out; import static java.lang.Integer.*; public class TestStaticImport { public static void main(String[] args) { out.println(MAX_VALUE); } }
最後,咱們須要注意一些細節:編譯
一、雖然該特性一般稱爲「靜態導入」,但語法必須是import static,後面跟你想導入的static成員的徹底限定名稱,或者通配符;class
二、在本例中,咱們可能想使用java.lang.Integer類的幾個static成員。該靜態導入語句使用通配符來表達「我想在此類中的全部靜態成員上進行靜態導入」。import
三、如今咱們終於看到靜態導入特性的好處!咱們沒必要在System.out.println中鍵入System。太好了!另外,咱們沒必要在Integer.MAX_VALUE中鍵入Integer。所以,在這行代碼中,我 們可以將快捷方式用於靜態方法和一個常量。
四、提防含糊不清的命名static成員。例如,若是你對Integer類和Long類執行了靜態導入,引用MAX_VALUE將致使一個編譯器錯誤,由於Integer和Long都有一個MAX_VALUE常量,並 且Java不會知道你在引用哪一個MAX_VALUE(能夠指明如,Integer.MAX_VALUE 就不會出現錯誤了)。
五、你能夠在static對象引用、常量(記住,它們是static 或final)和static方法上進行靜態導入。