Java中的package和import語句
- 如果你想讓其他人訪問你的類,你一定要把你寫的類放到正確的子目錄下。
- 在Java里,對於位於包中的類是這樣管理的:
- Java編譯器把包對應於文件系統的目錄管理,package語句中用 "."來指明包(目錄)的層次。比如:
package com.sxt;
//該文件中所有的類位於.\com\sxt目錄下
- 兩個小程序來驗證這個過程
//先定義一個類Cat
package com.bjsxt.java140;
public class Cat
{
}
- 現在我們新建一個類用來使用這個Cat類
public class Dog
{
public static void main(String args[])
{
Cat c = new Cat();
}
}
-
在編譯Dog.java時會發現:如果Cat.class不在規定的目錄下。編譯器會報錯:確認Cat這個累是否在正確的目錄下。
-
我們把Cat.class放到package語句規定的目錄下:編譯器還是會報相同的錯誤,因為從JDK1.5之后有可能Cat的源文件也會產生影響,我們把Cat.java刪掉。
-
刪掉源文件之后我們再次編譯:編譯器還是會報錯:不能解析Cat這個符號。因為我們語句中寫的是
Cat c = new Cat();
-
這代表Cat是一個裸體類,我們要把他的名字寫全:
com.bjsxt.java140.Cat c = new com.bjsxt.java140.Cat;
-
這樣子就可以通過編譯啦!
-
總結一下:package寫在第一句,編譯出來的class文件必須在正確的目錄下(和包的層次完全一致),在另外一個文件中使用時名字要寫全。
-
但是話說回來:我們每次使用Cat這個類時都要寫那么長一句話會不會很繁瑣?
-
解決方法:我們可以在程序開始前用import語句來引入這個類
import com.bjsxt.java140.Cat; //引入之前寫過的Cat類
public class Dog
{
public static void main(String args[])
{
Cat c = new Cat(); //編譯器就會認識這個類啦
}
}
- 還可以寫成
import com.bjsxt.java140.*; //代表把這個目錄下的類全部引入