Java基礎教程(13)--包

  爲了使類型更易於查找,避免命名衝突和訪問控制,咱們應該使用包來對本身定義的類型進行管理。這裏說的類型能夠是類、接口、枚舉和註解(枚舉和註解的內容會在後續教程中介紹)。使用包來管理咱們的代碼,有如下幾個目的:java

  • 便於查找:將類似或相關的類型放在同一個包下,項目總體的結構更加清晰,同時也有助於本身和其餘人在使用時能夠輕鬆地找到對應的類型。
  • 避免命名衝突:若是本身代碼中的類型與其餘已經存在的類型同名,使用包來建立新的命名空間能夠避免命名衝突。
  • 訪問控制:對於使用public修飾的類型來講,在本包或其餘包中均可以使用這個類型;對於沒有使用訪問修飾符的類型來講,則只能在本包中進行訪問,其餘包中的類型則沒法訪問。

1.包的命名規則

  包的命名知足如下規則:spa

  1. 包名建議所有小寫,以免與類或接口的名稱衝突;
  2. 父包和子包之間使用點(.)隔開;
  3. 建議將公司的互聯網域名以逆序的形式做爲包名,例如某公司的域名爲example.xyz,則mypackage包的命名爲xyz.example.mypackage;

2.將類型放入包中

  要想將一個類型放進包中,首先須要在源文件中使用package語句。package語句的語法是package關鍵字後面跟上這個類型所在的包。這條語句要放在源文件的開頭,例如:code

package xyz.example.mypackage;

public class Demo {
    ...
}

  若是沒有在源文件中添加package語句,這個類型就被放在一個默認包中。通常來講,不推薦使用默認包,建議將每個本身定義的類型都放在對應的包中。   將一個類型放進包中不但要在源文件中使用package語句,還要將源文件放在與包名匹配的目錄中。例如,xyz.example.mypackage包中的源文件應該被放置在目錄xyz/example/mypackage中。教程

3.使用包中的類型

(1)使用完整的包名   在要使用的類型前加上完整的包名,就能夠在程序中使用這個類型了,例如:接口

java.util.List<String> list = new java.util.ArrayList<>();

(2)導入類型   在每一個類型前使用完整的包名顯然很繁瑣,更經常使用的方式是使用import語句。在import關鍵字後面跟上具體類型的完整路徑便可將該類型導入當前源文件。例如,上面的例子能夠寫成:域名

import java.util.List;
import java.util.ArrayList;
...
List<String> list = new ArrayList<>();

(3)導入整個包   還可使用import導入某個包下全部的類型。就像下面這樣:class

import java.util.*;

  須要注意的是,*表明該包下全部的類型,但不包括子包。若是要導入子包或子包中的類型,則須要另外的import語句。 (4)靜態導入   import語句不只能夠導入類型,還能夠導入靜態方法和靜態域。例如,若是在源文件的頂部添加一條語句:import

import static java.lang.System.out;

就可使用System類的靜態方法和域,而沒必要加類名前綴:List

out.println("Hello, World!");
相關文章
相關標籤/搜索