Java千問:源文件名稱必須與類名相同嗎?

我們在初學Java語言的時候,老師給我們講的第一個例子往往是用記事本編寫打印“Hello World”的程序。當寫完程序後,老師一般都會要求我們把源文件的名稱命名爲與類名相同,比如,類的名稱叫A,那麼源文件的名稱也叫A。很多同學按老師的要求做了,也成功的運行出了“Hello World”。沒按老師要求做的,可能連編譯都無法成功。於是很多初學者都認爲,Java程序的源文件名必須與類名相同,那麼真實情況到底是不是這樣呢?我們慢慢道來。
Java程序的源文件名與類名之間存在如下關係:

  1. 一個Java源文件中可以定義多個類
  2. 源文件中定義的類,最多只能有一個類被public關鍵字修飾
  3. 如果源文件中有被public關鍵字修飾所修飾的類,那麼源文件名必須與public所修飾的類同名。

根據以上規則,我們就明白了:當年老師讓我們把源文件命名爲與類名相同的名稱,其實是因爲我們所定義的那個類前面有個public關鍵字。接下來我們深入研究一下幾種特殊情況:

源文件中如果沒有public所修飾的類,源文件該如何命名
這個問題其實很簡單,如果源文件中沒有任何一個類被public關鍵字所修飾,那麼我們可以用任意名稱來命名這個源文件,只要源文件的名稱符合命名規範就可以了。

一個源文件中如果定義了多個類,編譯之後會形成幾個.class文件
大家看下圖,我們在一個源文件當中定義了3個類,那麼編譯之後會產生多少個.class文件呢?Java千問:源文件名稱必須與類名相同嗎?經過編譯之後,一共產生了3個.class文件。並且這3個.class文件的名稱恰好與源文件中3個類的類名相對應。Java千問:源文件名稱必須與類名相同嗎?
通過這個實驗我們就可以得到一個結論:源文件與編譯後的字節碼文件的名稱和數量其實沒有一一對應關係,字節碼文件的名稱和數量其實是由源文件中類的名稱和數量決定的。

主方法必須定義在public類當中嗎
有一種說法,認爲主方法必須被定義到public類當中才能運行,其實這也是一種訛傳。大家看圖1,圖1當中主方法並沒有被定義到public類當中,但是我們照樣能通過相應的命令執行這個主方法Java千問:源文件名稱必須與類名相同嗎?

通過這篇小短文,我想初學Java的朋友能夠徹底弄清楚Java源文件名、字節碼文件名以及類名三者之間的關係了吧?

如果希望系統學習Java語言,可以點擊這裏觀看我的視頻課程,有問題也可以加入我的QQ羣291839907一起討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章