一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java編程小白進階包的作用詳解

java編程小白進階包的作用詳解

2022-02-21 00:34spring小楊 Java教程

這篇文章主要為大家介紹了java編程中包的作用詳解,文中通過示例分析方便大家更容易理解包的作用,有需要的朋友可以借鑒參考下,希望能夠有所幫助

包的作用,1是為了防止類和方法的重名,2是為了管理眾多的java類。

 

步驟 1 工具包里面有很多個工具類

之前講了打印數據的方法:System.out.println,寫這么多字有點麻煩啊。那么我們不妨創建一個StringUtil,Util是工具的意思,里面設計一個newLine方法,用于字符串的打印。

StringUtil是一個工具類,應該放在一個叫做tool的工具包里面。這個tool就是一個文件夾,我暫時把它創建在D盤的根目錄。

java編程小白進階包的作用詳解

 

步驟 2 StringUtil

java編程小白進階包的作用詳解

創建一個StringUtil.java,不必考慮編碼的問題,現在肯定是ANSI,其實就是GBK,除非你用的系統不是簡體中文。反正它是支持中文的,用Editplus打開,敲入以下的代碼:

class StringUtil
{
	public static void newLine(String msg){
		System.out.println(msg);
	}
}

用javac去編譯它,得到.class文件。

java編程小白進階包的作用詳解

 

步驟 3 目前的情況

目錄結構是這樣的:

java編程小白進階包的作用詳解

我們的程序在java18文件夾,現在想要調用tool文件夾中的StringUtil里面的newLine方法。

修改Demo.java

class Demo {
 public static void main(String[] args){	
	StringUtil.newLine("StringUtil -> newLine");	    
 }
}

編譯代碼:

java編程小白進階包的作用詳解

說是找不到符號,也難怪,JVM怎么知道有一個StringUtil類呢?

 

步驟 4 CLASSPATH

如果你學過java,有一定的Java基礎,那么你一定知道CLASSPATH的大名。所謂的CLASSPATH,是class和path兩個單詞,表示“類路徑”。就是你告訴JVM,哪些文件夾是我存放類(class文件)的路徑。

這個玩意,也是需要配置環境變量的,還記得配置JDK環境變量的步驟嗎?

現在來配置CLASSPATH環境變量,如果不記得,可以回去看下之前的章節。

java編程小白進階包的作用詳解

 

步驟 5 具體配置

java編程小白進階包的作用詳解

我們一般都是admin用戶登錄的,所以直接新建系統變量,我們把D盤根目錄配置進去,還有一個句點。

D:;.;

左邊的D:\代表D盤根目錄,右邊的小句點,代表當前的那個目錄。比如你要在java18文件夾里面去java一下Demo,那么JVM得需要知道當前的目錄是java18文件夾。

CLASSPATH這玩意,你要么不配置,不配置就默認是當前目錄,一旦配置了,就別忘記加個小點號。

我怕大家不明白,再嗦一下,這個配置的意思就是所有的類路徑。我們這樣配置了以后,JVM會去把D盤根路徑,還有你執行程序的當前目錄當做根路徑,這個待會還會細說。

 

步驟 6 package

D盤的根目錄是我們的類路徑,已經配好了。可是StringUtil不在D盤的根目錄啊,而在D盤里面一個叫做tool的文件夾。為了讓JVM能夠知道,我們還得修改StringUtil,加上package。

package tool;
class StringUtil
{
	public static void newLine(String msg){
		System.out.println(msg);
	}
}

 

步驟 7 驗證

tool文件夾也叫做包,現在我們來做驗證,給StringUtil加一個main方法。

package tool;
class StringUtil
{
	public static void newLine(String msg){
		System.out.println(msg);
	}

	public static void main(String[] args){
		newLine("StringUtil");
	}
}

用EditPlus的Ctrl+1編譯,然后在外面打開CMD黑窗口,不需要進入D盤,直接輸入命令。

java編程小白進階包的作用詳解

tool.StringUtil,這個“.”很有靈性,JVM會把“.”翻譯成\。

因為CLASSPATH里面有D:\,所以最終找到的位置是:D:\tool\StringUtil

這下,就很清楚了吧。

 

步驟 8 親自做一遍

強烈建議把上面的實驗自己做一遍,我相信很多人都不注重這個原理,因為IDEA真香。但是吧,身為程序員,還是要知道一點的,以后出去吹牛逼也有東西不是?

 

步驟 9 為什么現在用Editplus運行報錯了?

你可以試一下,在Editplus里面運行StringUtil,會報錯的。

java編程小白進階包的作用詳解

原因很簡單,因為你加了package

package tool;

你不加的話,就是一個默認的包(default package),也就是CLASSPATH里面所有的路徑。你一旦加上這句話,那么運行的時候,JVM就得上綱上線,先去CLASSPATH里面找,然后對應著,看看里面是不是有個tool文件夾。你直接運行是啥意思啊,意思就是你打算直接在CLASSPATH里面找一個StringUtil.class去運行。可是D盤沒有這個StringUtil.class,當前目錄到是有,可人家開頭有一句package tool啊,它認為自己是在D:\tool下面的,也不肯給你運行,所以就找不到了。

除非,你把package tool;去掉。

 

步驟 10 說白了

說白了,剛才的語句就是

java StringUtil

不加任何包,全裸的,這就叫做默認包(default package),默認包就是你CLASSPATH配置的那些地方。

 

步驟 11 包的作用

最后了,點題哈,包的作用有兩個,1是防止類重名,方法重名。比如,我們寫了StringUtil,但是據我所知,很多第三方jar包都有StringUtil,如果不用package來區分,那豈不是亂套了?

2是為了更好的管理class文件,畢竟,你一個項目有很多個class,成百上千個都有可能,不用package來分類,那這個項目還怎么維護啊?

以上就是java編程小白進階包的作用詳解的詳細內容,更多關于java包的作用的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/weixin_39570751/article/details/118615854

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品日韩视频 | 大学生按摩黄a级中文片 | 欧美图片小说 | 四虎成人国产精品视频 | 99影视在线视频免费观看 | 四虎一区 | 国产亚洲人成网站在线观看不卡 | 国内精品视频一区二区三区 | 亚洲精品久久久WWW游戏好玩 | 青青在线视频免费 | free性泰国娇小videos | 色老妇| 夫承子液by免费阅读 | 日本久本草精品 | ipx358cn出差被男上司在线 | 草莓视频深夜释放 | 无人区在线观看免费国语完整版 | 色啪久久婷婷综合激情 | 国产一区二区三区高清 | 国产青草视频在线观看免费影院 | 国产欧美va欧美va香蕉在线观 | 久久不射电影网 | 亚洲美女人黄网成人女 | 精品国产中文字幕在线视频 | 先锋资源av | 国产探花在线视频 | 精品国产91久久久久久久a | 俄罗斯妈妈235 | 国产亚洲一欧美一区二区三区 | 国产精品美女福利视频免费专区 | 黄色a站| 青草热久精品视频在线观看 | 91天堂在线视频 | 全黄一级裸片视频免费 | 欧美日韩亚洲第一区在线 | 香蕉精品国产高清自在自线 | 扒开老女人 | japanesqirl日本护士| 婷婷麻豆 | 微拍秒拍99福利精品小视频 | 日韩在线一区二区三区免费视频 |