咱們在初學Java語言的時候,老師給咱們講的第一個例子每每是用記事本編寫打印「Hello World」的程序。當寫完程序後,老師通常都會要求咱們把源文件的名稱命名爲與類名相同,好比,類的名稱叫A,那麼源文件的名稱也叫A。不少同窗按老師的要求作了,也成功的運行出了「Hello World」。沒按老師要求作的,可能連編譯都沒法成功。因而不少初學者都認爲,Java程序的源文件名必須與類名相同,那麼真實狀況究竟是不是這樣呢?咱們慢慢道來。
Java程序的源文件名與類名之間存在以下關係:html
根據以上規則,咱們就明白了:當年老師讓咱們把源文件命名爲與類名相同的名稱,實際上是由於咱們所定義的那個類前面有個public關鍵字。接下來咱們深刻研究一下幾種特殊狀況:ide
源文件中若是沒有public所修飾的類,源文件該如何命名
這個問題其實很簡單,若是源文件中沒有任何一個類被public關鍵字所修飾,那麼咱們能夠用任意名稱來命名這個源文件,只要源文件的名稱符合命名規範就能夠了。學習
一個源文件中若是定義了多個類,編譯以後會造成幾個.class文件
你們看下圖,咱們在一個源文件當中定義了3個類,那麼編譯以後會產生多少個.class文件呢?通過編譯以後,一共產生了3個.class文件。而且這3個.class文件的名稱剛好與源文件中3個類的類名相對應。
經過這個實驗咱們就能夠獲得一個結論:源文件與編譯後的字節碼文件的名稱和數量其實沒有一一對應關係,字節碼文件的名稱和數量實際上是由源文件中類的名稱和數量決定的。視頻
主方法必須定義在public類當中嗎
有一種說法,認爲主方法必須被定義到public類當中才能運行,其實這也是一種訛傳。你們看圖1,圖1當中主方法並無被定義到public類當中,可是咱們照樣能經過相應的命令執行這個主方法htm
經過這篇小短文,我想初學Java的朋友可以完全弄清楚Java源文件名、字節碼文件名以及類名三者之間的關係了吧?blog
若是但願系統學習Java語言,能夠點擊這裏觀看個人視頻課程,有問題也能夠加入個人QQ羣291839907一塊兒討論!get