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 |
---|---|---|---|---|
本類 | √ | √ | √ | √ |
本包中的其他類 | √ | √ | √ | × |
不同包的子類 | √ | √ | × | × |
不同包的非子類 | √ | × | × | × |