溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java包的作用是什么

發(fā)布時間:2022-01-11 10:32:12 來源:億速云 閱讀:304 作者:iii 欄目:編程語言

這篇文章主要介紹了Java包的作用是什么的相關(guān)知識,內(nèi)容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java包的作用是什么文章都會有所收獲,下面我們一起來看看吧。

為了更好地組織類,Java提供了包機制,用于區(qū)別類名的命名空間。

包的作用:

1. 把功能相似或相關(guān)的類或接口組織在同一個包中,方便類的查找和使用。

2.如同文件夾一樣,包也采用了樹形目錄的存儲方式。同一個包中的類名字是不同的,不同的包中的類的名字是可以相同的,當同時調(diào)用兩個不同包中相同類名的類時,應該加上包名加以區(qū)別。因此,包可以避免名字沖突。

3. 包也限定了訪問權(quán)限,擁有包訪問權(quán)限的類才能訪問某個包中的類。

Java使用包(package)這種機制是為了防止命名沖突,訪問控制,提供搜索和定位類(class)、接口、枚舉(enumerations)和注釋(annotation)等。

包語句的語法格式為:package pkg1[.pkg2[.pkg3…]];

例如,一個Something.java 文件它的內(nèi)容

package net.java.util

public class Something{

   ...

}

那么它的路徑應該是 net/java/util/Something.java 這樣保存的。 package(包)的作用是把不同的java程序分類保存,更方便的被其他java程序調(diào)用。

一個包(package)可以定義為一組相互聯(lián)系的類型(類、接口、枚舉和注釋),為這些類型提供訪問保護和命名空間管理的功能。

以下是一些Java中的包:

java.lang-打包基礎(chǔ)的類

java.io-包含輸入輸出功能的函數(shù)

開發(fā)者可以自己把一組類和接口等打包,并定義自己的package。而且在實際開發(fā)中這樣做是值得提倡的,當你自己完成類的實現(xiàn)之后,將相關(guān)的類分組,可以讓其他的編程者更容易地確定哪些類、接口、枚舉和注釋等是相關(guān)的。

http://www.iis7.com/a/lm/gjcpmcx/

由于package創(chuàng)建了新的命名空間(namespace),所以不會跟其他package中的任何名字產(chǎn)生命名沖突。使用包這種機制,更容易實現(xiàn)訪問控制,并且讓定位相關(guān)類更加簡單。

。。。

創(chuàng)建包

創(chuàng)建package的時候,你需要為這個package取一個合適的名字。之后,如果其他的一個源文件包含了這個包提供的類、接口、枚舉或者注釋類型的時候,都必須將這個package的聲明放在這個源文件的開頭。

包聲明應該在源文件的第一行,每個源文件只能有一個包聲明,這個文件中的每個類型都應用于它。

如果一個源文件中沒有使用包聲明,那么其中的類,函數(shù),枚舉,注釋等將被放在一個無名的包(unnamed package)中。

通常使用小寫的字母來命名避免與類、接口名字的沖突。

。。。

import關(guān)鍵字

為了能夠使用某一個包的成員,我們需要在 Java 程序中明確導入該包。使用"import"語句可完成此功能。

在 java 源文件中 import 語句應位于 package 語句之后,所有類的定義之前,可以沒有,也可以有多條,其語法格式為:import package1[.package2…].(classname|*);

如果在一個包中,一個類想要使用本包中的另一個類,那么該包名可以省略。

注意:類文件中可以包含任意數(shù)量的import聲明。import聲明必須在包聲明之后,類聲明之前。

。。。

package的目錄結(jié)構(gòu)

類放在包中會有兩種主要的結(jié)果:

1. 包名成為類名的一部分,正如我們前面討論的一樣。

2. 包名必須與相應的字節(jié)碼所在的目錄結(jié)構(gòu)相吻合。

下面是管理你自己java中文件的一種簡單方式:

將類、接口等類型的源碼放在一個文件中,這個文件的名字就是這個類型的名字,并以.java作為擴展名。

例如:

// 文件名 :  Car.java

package vehicle;

public class Car {

   // 類實現(xiàn)  

}

接下來,把源文件放在一個目錄中,這個目錄要對應類所在包的名字:....\vehicle\Car.java

現(xiàn)在,正確的類名和路徑將會是如下樣子:

類名 -> vehicle.Car

路徑名 -> vehicle\Car.java (in windows)

通常,一個公司使用它互聯(lián)網(wǎng)域名的顛倒形式來作為它的包名.例如:互聯(lián)網(wǎng)域名是apple.com,所有的包名都以com.apple開頭。包名中的每一個部分對應一個子目錄。

例如:這個公司有一個com.apple.computers的包,這個包包含一個叫做Dell.java的源文件,那么相應的,應該有如下面的一連串子目錄:

....\com\apple\computers\Dell.java

編譯的時候,編譯器為包中定義的每個類、接口等類型各創(chuàng)建一個不同的輸出文件,輸出文件的名字就是這個類型的名字,并加上.class作為擴展后綴。 

例如:

// 文件名: Dell.java

package com.apple.computers;

public class Dell{

}

class Ups{

}

現(xiàn)在,我們用-d選項來編譯這個文件,如右:$javac -d . Dell.java

這樣會像右面這樣放置編譯了的文件:.\com\apple\computers\Dell.class.\com\apple\computers\Ups.class

你可以像右面這樣來導入所有 \com\apple\computers\中定義的類、接口等:import com.apple.computers.*;

編譯之后的.class文件應該和.java源文件一樣,它們放置的目錄應該跟包的名字對應起來。但是,并不要求.class文件的路徑跟相應的.java的路徑一樣。你可以分開來安排源碼和類的目錄。

<path-one>\sources\com\apple\computers\Dell.java

<path-two>\classes\com\apple\computers\Dell.class

這樣,你可以將你的類目錄分享給其他的編程人員,而不用透露自己的源碼。用這種方法管理源碼和類文件可以讓編譯器和java虛擬機(JVM)可以找到你程序中使用的所有類型。

類目錄的絕對路徑叫做class path。設(shè)置在系統(tǒng)變量CLASSPATH中。編譯器和java虛擬機通過將package名字加到class path后來構(gòu)造.class文件的路徑。

<path- two>\classes是class path,package名字是com.apple.computers,而編譯器和JVM會在 <path-two>\classes\com\apple\compters中找.class文件。

一個class path可能會包含好幾個路徑。多路徑應該用分隔符分開。默認情況下,編譯器和JVM查找當前目錄。JAR文件按包含Java平臺相關(guān)的類,所以他們的目錄默認放在了class path中。

。。。

設(shè)置CLASSPATH系統(tǒng)變量

用下面的命令顯示當前的CLASSPATH變量:

Windows平臺(DOS 命令行下)-> C:\> set CLASSPATH

UNIX平臺(Bourne shell下)-> % echo $CLASSPATH

刪除當前CLASSPATH變量內(nèi)容:

Windows平臺(DOS 命令行下)-> C:\> set CLASSPATH=

UNIX平臺(Bourne shell下)-> % unset CLASSPATH; export CLASSPATH

設(shè)置CLASSPATH變量:

Windows平臺(DOS 命令行下)-> set CLASSPATH=C:\users\jack\java\classes

UNIX平臺(Bourne shell下)-> % CLASSPATH=/home/jack/java/classes; export CLASSPATH

關(guān)于“Java包的作用是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“Java包的作用是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI