您好,歡迎來(lái)到賦能網(wǎng)!

Java的package一定要寫(xiě)嗎?Java的package有什么用?

賦能網(wǎng) 2023-05-09 58

編寫(xiě)java的時(shí)候,我們需要遵守java編程代碼規(guī)范,不然就會(huì)出現(xiàn)java運(yùn)行錯(cuò)誤的情況,導(dǎo)致java無(wú)法正常運(yùn)行,那Java的package一定要寫(xiě)嗎?接下來(lái)我們就來(lái)給大家講解一下這方面的內(nèi)容。

Java的package一定要寫(xiě),盡管放到正確的包路徑中,沒(méi)有pakage聲明的文件中的類在編譯過(guò)程中會(huì)被放到默認(rèn)包(未命名)中,無(wú)法被引用。

Java的package有什么用?

包的 3 個(gè)作用如下:

1. 區(qū)分相同名稱的類。

2. 能夠較好地管理大量的類。

3. 控制訪問(wèn)范圍。

包定義

Java 中使用 package 語(yǔ)句定義包,package 語(yǔ)句應(yīng)該放在源文件的第一行,在每個(gè)源文件中只能有一個(gè)包定義語(yǔ)句,并且 package 語(yǔ)句適用于所有類型(類、接口、枚舉和注釋)的文件。定義包語(yǔ)法格式如下:

package 包名;

Java 包的命名規(guī)則如下:

包名全部由小寫(xiě)字母(多個(gè)單詞也全部小寫(xiě))。

如果包名包含多個(gè)層次,每個(gè)層次用“.”分割。

包名一般由倒置的域名開(kāi)頭,比如 com.baidu,不要有 www。

自定義包不能 java 開(kāi)頭。

注意:如果在源文件中沒(méi)有定義包,那么類、接口、枚舉和注釋類型文件將會(huì)被放進(jìn)一個(gè)無(wú)名的包中,也稱為默認(rèn)包。在實(shí)際企業(yè)開(kāi)發(fā)中,通常不會(huì)把類定義在默認(rèn)包下。

包導(dǎo)入

如果使用不同包中的其它類,需要使用該類的全名(包名+類名)。代碼如下:

example.Test test = new example.Test();

其中,example 是包名,Test 是包中的類名,test 是類的對(duì)象。

為了簡(jiǎn)化編程,Java 引入了 import 關(guān)鍵字,import 可以向某個(gè) Java 文件中導(dǎo)入指定包層次下的某個(gè)類或全部類。import 語(yǔ)句位于 package 語(yǔ)句之后,類定義之前。一個(gè) Java 源文件只能包含一個(gè) package 語(yǔ)句,但可以包含多個(gè) import 語(yǔ)句。

使用 import 導(dǎo)入單個(gè)類的語(yǔ)法格式如下:

import 包名+類名;

上面語(yǔ)句用于直接導(dǎo)入指定類,例如導(dǎo)入前面的 example.Test 類,代碼如下:

import example.Test;

使用 import 語(yǔ)句導(dǎo)入指定包下全部類的用法按如下:

import example.*;

上面 import 語(yǔ)句中的星號(hào)(*)只能代表類,不能代表包,表明導(dǎo)入 example 包下的所有類。

提示:使用星號(hào)(*)可能會(huì)增加編譯時(shí)間,特別是引入多個(gè)大包時(shí),所以明確的導(dǎo)入你想要用到的類是一個(gè)好方法,需要注意的是使用星號(hào)對(duì)運(yùn)行時(shí)間和類的大小沒(méi)有影響。

通過(guò)使用 import 語(yǔ)句可以簡(jiǎn)化編程,但 import 語(yǔ)句并不是必需的,如果在類里使用其它類的全名,可以不使用 import 語(yǔ)句。

Java 默認(rèn)為所有源文件導(dǎo)入 java.lang 包下的所有類,因此前面在 Java 程序中使用 String、System 類時(shí)都無(wú)須使用 import 語(yǔ)句來(lái)導(dǎo)入這些類。但對(duì)于前面介紹數(shù)組時(shí)提到的 Arrays 類,其位于 java.util 包下,則必須使用 import 語(yǔ)句來(lái)導(dǎo)入該類。

在一些極端的情況下,import 語(yǔ)句也幫不了我們,此時(shí)只能在源文件中使用類全名。例如,需要在程序中使用 java.sql 包下的類,也需要使用 java.util 包下的類,則可以使用如下兩行 import 語(yǔ)句:

import java.util.*;
import java.sql.*;

如果接下來(lái)在程序中需要使用 Date 類,則會(huì)引起如下編譯錯(cuò)誤:

Test.java:25:對(duì)Date的引用不明確,
java.sql中的類java.sql.Date和java.util中的類java.util.Date都匹配

上面錯(cuò)誤提示:在 Test.java 文件的第 25 行使用了 Date 類,而 import 語(yǔ)句導(dǎo)入的 java.sql 和 java.util 包下都包含了 Date 類,系統(tǒng)不知道使用哪個(gè)包下的 Date 類。在這種情況下,如果需要指定包下的 Date 類,則只能使用該類的全名,代碼如下:

// 為了讓引用更加明確,即使使用了 import 語(yǔ)句,也還是需要使用類的全名

java.sql.Date d = new java.sql.Date();

系統(tǒng)包

Java SE 提供了一些系統(tǒng)包,其中包含了 Java 開(kāi)發(fā)中常用的基礎(chǔ)類。在 Java 語(yǔ)言中,開(kāi)發(fā)人員可以自定義包,也可以使用系統(tǒng)包,常用的系統(tǒng)包如表所示。

Java的package還是很重要的,有了它能夠解決類的命名沖突、類文件管理等問(wèn)題。并且還可以在包內(nèi)定義類,而在包外的代碼不能訪問(wèn)該類。最后大家如果想要了解更多初識(shí)java知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。


本文鏈接:

本文章“Java的package一定要寫(xiě)嗎?Java的package有什么用?”已幫助 58 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: