欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年10月15日 10:25:17   作者:spring小楊  
這篇文章主要為大家介紹了java編程中包的作用詳解,文中通過示例分析方便大家更容易理解包的作用,有需要的朋友可以借鑒參考下,希望能夠有所幫助

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

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

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

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

image

步驟 2  StringUtil

image

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

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

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

image

步驟 3  目前的情況

目錄結(jié)構(gòu)是這樣的:

image

我們的程序在java18文件夾,現(xiàn)在想要調(diào)用tool文件夾中的StringUtil里面的newLine方法。

修改Demo.java

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

編譯代碼:

image

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

步驟 4  CLASSPATH

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

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

現(xiàn)在來配置CLASSPATH環(huán)境變量,如果不記得,可以回去看下之前的章節(jié)。

image

步驟 5  具體配置

image

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

D:;.;

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

CLASSPATH這玩意,你要么不配置,不配置就默認(rèn)是當(dāng)前目錄,一旦配置了,就別忘記加個小點號。

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

步驟 6  package

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

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

步驟 7  驗證

tool文件夾也叫做包,現(xiàn)在我們來做驗證,給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盤,直接輸入命令。

image

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

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

這下,就很清楚了吧。

步驟 8  親自做一遍

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

步驟 9  為什么現(xiàn)在用Editplus運行報錯了?

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

image

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

package tool;

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

除非,你把package tool;去掉。

步驟 10  說白了

說白了,剛才的語句就是

java StringUtil

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

步驟 11  包的作用

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

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

以上就是java編程小白進階包的作用詳解的詳細(xì)內(nèi)容,更多關(guān)于java包的作用的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率

    如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率

    這篇文章主要介紹了如何使用pipeline和jacoco獲取自動化測試代碼覆蓋率,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Spring boot @ModelAttribute標(biāo)注的實現(xiàn)

    Spring boot @ModelAttribute標(biāo)注的實現(xiàn)

    這篇文章主要介紹了Spring boot @ModelAttribute標(biāo)注的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 一篇文章帶你了解Java SpringBoot Nacos

    一篇文章帶你了解Java SpringBoot Nacos

    這篇文章主要介紹了SpringBoot使用Nacos配置中心的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Java基礎(chǔ)異常處理代碼及原理解析

    Java基礎(chǔ)異常處理代碼及原理解析

    這篇文章主要介紹了java基礎(chǔ)異常處理代碼及原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Java日期時間格式化操作DateUtils 的整理

    Java日期時間格式化操作DateUtils 的整理

    這篇文章主要介紹了Java日期時間格式化操作DateUtils 的整理的相關(guān)資料,這里總結(jié)了java日期格式化的操作,需要的朋友可以參考下
    2017-07-07
  • Java中的stream流的概念解析及實際運用總結(jié)

    Java中的stream流的概念解析及實際運用總結(jié)

    流是指傳輸時的數(shù)據(jù),Java為流準(zhǔn)備了很多內(nèi)置類,尤其是IO輸入輸出流非常常用,這里我們來看一下Java中的stream流的概念解析及實際運用總結(jié)
    2016-06-06
  • Java設(shè)計模式中觀察者模式詳解

    Java設(shè)計模式中觀察者模式詳解

    觀察者模式是極其重要的一個設(shè)計模式,也是我?guī)啄觊_發(fā)過程中使用最多的設(shè)計模式,本文首先概述觀察者模式的基本概念和Demo實現(xiàn),接著是觀察者模式在Java和Spring中的應(yīng)用,最后是對觀察者模式的應(yīng)用場景和優(yōu)缺點進行總結(jié)
    2022-11-11
  • Java中的CountDownLatch源碼解析

    Java中的CountDownLatch源碼解析

    這篇文章主要介紹了Java中的CountDownLatch源碼解析,CountDownLatch類是一個同步輔助裝置,允許一個或多個線程去等待直到另外的線程完成了一組操作,需要的朋友可以參考下
    2023-12-12
  • Spring Cloud Ribbon配置詳解

    Spring Cloud Ribbon配置詳解

    這篇文章主要介紹了Spring Cloud Ribbon配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Mybatis插入Oracle數(shù)據(jù)庫日期型數(shù)據(jù)過程解析

    Mybatis插入Oracle數(shù)據(jù)庫日期型數(shù)據(jù)過程解析

    這篇文章主要介紹了Mybatis插入Oracle數(shù)據(jù)庫日期型數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09

最新評論