包定義語句必須放在java源檔案第一行,也就是在它之前除了空白和注釋之外不能有任何其他語句。
包也直接對應著作業系統目錄階層,所以定義了相應包就必須得定義相應層次的檔案夾層次。例如有
如下Test.java樣本:
package mysite;
class Test
{
public
static void main(String [] args)
{
System.out.println("package
test successed!");
}
}
假如Test.java在E:/javaLession/Lession3下,這時dos進入到這個目錄,執行 javac Test.java,會產生一個test.class編譯檔案,這時如果繼續操作,運行該編譯檔案:java
Test,就會出錯,這時必須得手動在E:/javaLession/Lession3下建立一個mysite檔案夾,然後把test.class拷貝在這個mysite檔案夾下,然後在在E:/javaLession/Lession3下執行 java mysite.Test就運行成功了。
但是如果類比較多,這樣手動建立相應檔案夾很麻煩,我們可在編譯源檔案時用javac的-d命令直接產生相應檔案夾層次:
在E:/javaLession/Lession3下執行 javac –d . Test.java,編譯之後,java會自動產生一個mysite檔案夾,並且編譯結果產生的class檔案Test.class就在這個mysite目錄下。
注意:-d後面的點號.意思是在目前的目錄下產生相應檔案目錄。
當然我們也可以把編譯產生的編譯檔案放置到其他目錄下,例如放到d:盤根目錄,可以這樣,在E:/javaLession/Lession3下執行 javac –d d:/ Test.java
這時就在d盤產生了mysite目錄結構。這時如果想執行d盤中的Test.java檔案,則需要將d哦按根目錄放進classpath路徑中,步驟:
Cmd命令:set classpass=%classpass%;d:/ 就載入進去了。%%中的內容表示之前已經載入的路徑。
可以再執行set classpass 查看已經載入的路徑。
請注意:因為加了包名的類的全稱就是包名+本身類名,所以如果這時進入到mysite目錄,然後執行java Test 是行不通的。必須要退
到Test.java檔案的目前的目錄,然後執行
java mysite.Test才會成功。
import語句
有包就需要匯入。
引入包中的類:import
java.io.File;
引入整個包:
import java.io.*;
在同一包中可以相互引用類,而無需import語句。
如果你不通過import匯入你要使用的其他包中的類的話,那麼你就必須使用該類的全稱來訪問這個類,你說用import是不是很方便呢???
類的說明符
類的訪問說明符:
public 如果你想讓其他包中的類訪問你
當前的類,那麼就必須給類加上public
當然,當你訪問其他包中的類時別忘了用import匯入哦。
default 預設情況下,類是只能在當
前包中被訪問。
類的其他修飾符
final 此關鍵字表示當前類不能被繼
承,她是一個最終類。如果你不想類被繼承修改,
就用final吧。例如 String 就是一個最終類。
abstract
抽象類別
方法說明
符:
方法的訪問說明符:
(1) Public 不同包中的任何類都可以相互訪問
(2) protected 如果一個子類的父類是不同包中的類,但因為父類方法使用了protected
關
鍵字,那麼不同包中的子類就可以訪問父類的該方法咯。
(3) default 只能在同一包中被訪問。例如一個子類的父類是不同包中的類,那麼這
個子類都無法訪問父類中的預設方
法。因為子類和父類分屬於不同包中。
(4) private 只能在同一個類中訪問,就是子類繼承了父類,父類中的私人方法都不
能
被繼承到子類,所以就是子類也無法訪問到父類的私人方法。
方法的其他修飾符:
(1) static 此方法屬於類本身,而不是類的某個執行個體
(2) final 為了保證類在被繼承過程中保持不變,不讓子類重寫父類的好方法就是
使
用final關鍵字。
類中所有private和static方法自然就是final方法哦
(3) abstract 沒有方法體的方法就是抽象方法,具體表現就是沒有{}和其中內容只有;
注意:抽象方法後一定有一個分號結尾哦!如果類
中有抽象方法,那麼該類必須申明為抽象類別,而且抽象類別是不能執行個體化一個類對象的哦。另外,如果一個子類繼承了一個抽象父類,如果這個子類沒有實現父類中定
義的抽象方法,子類也需申明為抽象類別,除非子類實現了所有抽象方法。
抽象類別不能產生任何類執行個體的原因就是防止有沒有實現的方法的類產生任何對象。
(4) native 該方法允許使用者在java中可以使用,但是不能編寫的方法
要瞭解該方法首先就得明白JNI技術(java native interface)
它允許jvm中運
行的java代碼
能夠與使用其他程式設計語言(c,c++等)
編寫的應用程式和庫進行互操作。簡單理解為JNI就是java同本地應用程式之間的中介。具體過程要使用到javah.exe編譯器,具體就不介紹了。
(5) synchronized 講多線程時再介紹此修飾符