1. 程式人生 > >java包及訪問許可權

java包及訪問許可權

一丶包的定義及使用

1、包的定義<–>使用package關鍵字完成。

  • 同一個資料夾中是不可能同時存在同一個 *.class 檔案的。

  • 包實際上就屬於一個資料夾。

  • 一個類的完整名稱是“包.類”名稱。

    • 在實際的開發中沒有包的類是不存在的。

程式中定義一個包之後可以通過以下的命令進行編譯:【javac -d . Hello.java】。

  • -d:表示將根據package的定義生成資料夾。

  • . :表示在當前所在的資料夾之中生成 *.class 。

訪問的時候必須連包一起訪問:【java org.lxh.demo.Hello】。

2、包的匯入<–>使用import語句。

①、呼叫另一個包中所包含的類。

  • import 包.類;

②、匯入一個包的多個類。

  • import org.demoa.*; //匯入所需要的類

  • 在兩個包中有相同的類,只能通過完整的“包.類”的方式進行物件的例項化。

    • org.demoa.Info info = new org.demoa.Info();

    • <-----包-----> 名稱 = new <-----包----->();

③、關於public class和class宣告的區別:

  • public class:類名稱必須和檔名稱一致,【可以被外包所訪問】。

  • class:類名稱可以與檔名稱不一致,但是執行的時候要【執行類名稱】,而且【不能被外包所訪問】。

3、靜態匯入。

  • 一個類中的全部方法都是靜態方法,可以直接將方法匯入進來。

二丶系統的常用包

在 Java 語言中為開發者準備了各種各樣的開發包,常見的包有以下幾種:

  • java.lang:是一個基礎的開發包。
    • 包含了一些常用類:String、Integer、Exception、Object
  • java.lang.reflect:是反射操作包。
  • java.util:為開發的工具包。
  • java.io:完成 IO 操作的開發包。
  • java.sql:完成資料庫的開發包。
  • java.text:格式化的開發包。
  • java.applet:Applet程式的實現包。
  • java.awt、javax.swing:圖形介面的開發包。

三丶JAR命令

(1)建立jar包

jar cf hello.jar hello

利用test目錄生成hello.jar包,如hello.jar存在,則覆蓋。

(2)建立並顯示打包過程

jar cvf hello.jar hello

利用hello目錄建立hello.jar包,並顯示建立過程。
例:E:\>jar cvf hello.jar hello

`標明清單(manifest)`

增加:hello/(讀入= 0) (寫出= 0)(儲存了 0%)
增加:hello/TestServlet2.class(讀入= 1497)(寫出= 818)(壓縮了 45%)
增加:hello/HelloServlet.class(讀入= 1344)(寫出= 736)(壓縮了 45%)
增加:hello/TestServlet1.class(讀入= 2037)(寫出= 1118)(壓縮了45%)

(3)顯示jar包:

jar tvf hello.jar
  • 檢視hello.jar包的內容

  • 指定的jar包必須真實存在,否則會發生FileNoutFoundException。

(4)解壓jar包:

jar xvf hello.jar
  • 解壓hello.jar至當前目錄

(5)jar中新增檔案:

jar uf hello.jar HelloWorld.java
  • 將HelloWorld.java新增到hello.jar包中。

(6)建立不壓縮內容jar包:

jar cvf0 hello.jar *.class
  • 利用當前目錄中所有的.class檔案生成一個不壓縮jar包。

(7)建立帶manifest.mf檔案的jar包:

jar cvfm hello.jar manifest.mf hello
  • 建立的jar包多了一個META-INF目錄,META-INF止錄下多了一個manifest.mf檔案,至於manifest.mf的作用,後面會提到。

(8)忽略manifest.mf檔案:

jar cvfM hello.jar hello
  • 生成的jar包中不包括META-INF目錄及manifest.mf檔案。

(9)加-C應用:

jar cvfm hello.jar mymanifest.mf -C hello/
  • 表示在切換到hello目錄下然後再執行jar命令。

(10)-i為jar檔案生成索引列表:
- 當一個jar包中的內容很好的時候,你可以給它生成一個索引檔案,這樣看起來很省事。

jar i hello.jar
  • 執行完這條命令後,它會在hello.jar包的META-INF資料夾下生成一個名為INDEX.LIST的索引檔案,它會生成一個列表,最上邊為jar包名。

(11)匯出解壓列表:

jar tvf hello.jar >hello.txt
  • 如果你想檢視解壓一個jar的詳細過程,而這個jar包又很大,螢幕資訊會一閃而過,這時你可以把列表輸出到一個檔案中。

    (12)jar -cvf hello.jar hello/*

    例如原目錄結構如下:
    hello
    |---com
    |---org

  • 問題。
    本想只把com目錄和org目錄打包,而這時jar命令會連同hello目也一塊打包。

  • 解決。

    • jar命令生成的壓縮檔案會包含它後邊出的目錄。

    • 我們應該進入到hello目錄再執行jar命令。

2、Manifest.mf檔案編寫規則:

(1)不能有空行和空格的地方。
第一行不可以是空行( 第一行的行前不可以有空行),行與行之間不能有空行,第行的行尾不可以有空格。

(2)一定要有空行的地方。
最後一行得是空行(在輸完你的內容後加一個回車就OK)。

(3)一定有空格的地方。
key: value 在分號後面一定要寫寫一個空格。

四丶命名規範(知道)

1、定義【類名稱】的時候,每個單詞的首字母大寫:HelloInfo
2、定義【方法名稱】的時候,第一個單詞的首字母小寫,之後每個單詞的首字母大寫:printInfo()
3、定義【屬性】的時候,第一個單詞的首字母小寫,之後每個單詞的首字母大寫:empName
4、定義【常量】的時候,所有的單詞字母都要大寫:INFO
5、定義【包名稱】的時候,所有的單詞的字母都要小寫:org.demo

五丶訪問許可權

位置 public protected default private
本類
本包中的其他類 ×
不同包的子類 × ×
不同包的非子類 × × ×