【作者前言】:13年入圈,分享些本人工作中遇到的點點滴滴那些事兒,17年剛開始寫博客缠劝,高手勿噴!以分享交流為主骗灶,歡迎各路豪杰點評改進惨恭!
[1]
??知識點內(nèi)容
??1. 包的概念以及意義 [2]
為了
更好地組織類
,Java 提供了包機制
耙旦,用于區(qū)別類名的命名空間
包的作用:
把功能相似或相關(guān)的類或接口組織在同一個包中脱羡,方便類的查找和使用
如同文件夾一樣,包也采用了樹形目錄的存儲方式免都。同一個包中的類名字是不同的锉罐,不同的包中的類的名字是可以相同的,當(dāng)同時調(diào)用兩個不同包中相同類名的類時绕娘,應(yīng)該加上包名加以區(qū)別脓规。因此,
包可以避免名字沖突
险领。
包也提供了限定了訪問權(quán)限的一個控制范圍
抖拦,擁有包訪問權(quán)限的類才能訪問某個包中的類
Java
使用包這種機制是為了防止命名沖突,訪問控制舷暮,提供搜索和定位類态罪、接口、枚舉和注解等下面,它把不同的 java 程序分類保存复颈,更方便的被其他 java 程序調(diào)用
以下是一些JDK中的包:
java.lang:打包基礎(chǔ)的類
java.io:包含輸入輸出功能的函數(shù)
java.util:包含一些重要的工具
…
開發(fā)者可以自己把一組類等組合定義自己的包。而且在實際開發(fā)中這樣做是值得提倡的,將相關(guān)的類分組耗啦,可以讓其他的編程者更容易地確定哪些類凿菩、接口、枚舉和注解等是相關(guān)的
由于包創(chuàng)建了新的命名空間帜讲,所以不會跟其他包中的任何名字產(chǎn)生命名沖突衅谷。使用包這種機制,更容易實現(xiàn)訪問控制似将,并且讓定位相關(guān)類更加簡單
??2.Package import
[3]
Java中用package語句來將一個Java源文件中的類打成一個包
package語句必須作為Java源文件的第一條語句获黔,指明該文件中定義的類所在的包。(若忽略該語句在验,則指定為無名包)玷氏。它的格式為:package pkg1[.pkg2[.pkg3…]];
Java編譯器把包對應(yīng)于文件系統(tǒng)的目錄管理
package語句中,用“ .” 來指明目錄的層次
包名 域名倒置進行設(shè)置
www.chinasofti.com--------->com.chinasofti.xxx
Com.chinasofti.項目名稱.包得功能名稱
包聲明應(yīng)該在源文件的第一行
腋舌,每個源文件只能有一個包聲明盏触,這個文件中的每個類型都應(yīng)用于它
Import
為了能夠使用其他包的成員,需要在 Java 程序中明確導(dǎo)入該包
使用 "import" 語句可完成此功能
在 java 源文件中 import 語句應(yīng)位于 package 語句之后块饺,所有類的定義之前赞辩,可以沒有,也可以有多條授艰,其語法格式為:
import package1[.package2…].(classname|*);
如果在一個包中诗宣,一個類想要使用本包中的另一個類,那么該包名可以省略
import語句中類名部分可以使用通配符"*"
符號*表示直接導(dǎo)入包中所有的類
如:image.png
表示導(dǎo)入com.chinasofti包中所有的類
注意:包和子包之間不存在繼承關(guān)系想诅,只要兩個類不直接在同一個文件中即認為位于不同的包召庞,因此*號只能包含本包中的類而不能包含子包中的類,即:
java.lang.*包中包含了Java語言中的核心工具(lang=>language),因此Java將其作為缺省加載的包存在来破,即使用該包中的類時無需import
類目錄的絕對路徑叫做 class path篮灼,設(shè)置在系統(tǒng)變量 CLASSPATH中
編譯器和 java 虛擬機通過將 package 名字加到 class path 后來構(gòu)造 .class 文件的路徑
root\classes 是 class path,package 名字是 com.chinasofti,而編譯器和 JVM 會在 root\classes\com\chinasofti 中找 .class 文件
一個 class path 可能會包含好幾個路徑徘禁,多路徑應(yīng)該用分隔符分開
默認情況下诅诱,編譯器和 JVM 查找當(dāng)前目錄
??3. 包的命名規(guī)則 [4]
創(chuàng)建包的時候,你需要為這個包取一個合適的名字送朱,根據(jù)Java包的約定娘荡,名字內(nèi)的
所有字母都應(yīng)小寫
,之后驶沼,如果非同包的其他的一個源文件使用了這個包提供的類炮沐、接口、枚舉或者注釋類型的時候回怜,都必須在這個源文件的開頭說明所引用的包名
通常大年,一個公司使用它互聯(lián)網(wǎng)域名的顛倒形式
來作為它的包名
.例如:互聯(lián)網(wǎng)域名是 chinasofti.com,所有的包名都以 com.chinasofti 開頭