Java學習日記8-包、環境變數和存取控制,java8-
Java中的包、環境變數和存取控制
一、java中的包
Java利用包來組織代碼,一來使大型項目的代碼結構清晰,二來包是一個命名空間的劃分,即不同包中可以有相同名字的類,只需在在類名前加上包名即可區分它們。
Package xxx 必須位於java檔案除了注釋以外的第一行,用來指明當前檔案中的類屬於哪一個包,如果沒有package語句,則該檔案中的類都屬於預設包。
Import xxx用來在當前java檔案中匯入不屬於當前包中的類,從而可以在當前檔案中使用它們。
二、java中的環境變數
1.path
環境變數其實就是一組變數(廢話),它的作用是給系統和應用程式提供參數。例如:path,它告訴系統和應用程式一些系統必備的程式的儲存位置,比如你要運行ipconfig命令,系統去哪裡找它呢,就是通過path變數,把它所儲存的位置挨個找一遍,直到找到為止。
在java中,當我們要運行java程式,在控制台輸入java xxx時,java這個應用程式(exe檔案)到哪裡找呢?系統就得通過path,這樣就得把包含java這個應用程式的目錄拷貝到path環境變數中,這樣以後,再運行java xxx 就不會出現“‘java’不是內部或外部命令,也不是可啟動並執行程式或批次檔。”了。
2.classpath
說完path,再來說說classpath,解決了java這個命令的問題,還有javac這個命令的問題,這裡就牽扯到java中的包機制了。
Java程式是由一個一個類構成的,類之間可以相互調用,還有一些java語言已經定義好的類,那麼當程式要用到這些類的時候,去哪裡找他們呢,這就需要classpath這個環境變數來指點迷津了。
總結:classpath指明了類尋找路徑,如果類沒有被打包,那就需要將其所在目錄添加到classpath中,如果類被打包為JAR檔案,則需要將JAR檔案的實際名稱寫清楚。
Classpath一般設定為“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”
其中.代表目前的目錄,%JAVA_HOME%代表java jdk的路徑。Dt.jar中主要是swing包中的各種控制項類。Tools.jar中是各種工具類。
當編譯器碰到import語句時,就開始在CLASSPATH所包含的目錄中尋找。
(參考:http://www.linuxidc.com/Linux/2012-01/52713.htm)
3.JAVA_HOME
指明jdk的路徑
三、存取權限控制
1.類成員的存取控制
存取控制符:public/protected/包存取權限(無關鍵字即預設)/private
|
類本身 |
同包中的子類 |
不同包中的子類 |
同包中的非子類 |
不同包中的非子類 |
總之 |
public |
可以 |
可以 |
可以 |
可以 |
可以 |
都可以 |
private |
可以 |
不可以 |
不可以 |
不可以 |
不可以 |
僅自身可見 |
default |
可以 |
可以 |
不可以 |
可以 |
不可以 |
僅同包可見 |
protected |
可以 |
可以 |
可以 |
可以 |
不可以 |
子類或者同包可見 |
2.類的存取控制許可權
類只有兩種存取控制許可權:預設(即包存取控制許可權)和public