2014-03-01 28 views
0

我知道在java中文件名應該總是和類名一樣。假設文件名是test.java,那麼類名應該是test。Java空類名

但是當我讀到這個site問題8告訴我們可以有空的類名。

間接意味着文件名與類名不同。

所以我弄糊塗了,並再次在互聯網搜索,發現這些鏈接Why are filenames in Java the same as the class name?Can I compile a java file with a different name than the class?

雙方表示,類名應該等於文件名。

之後,我試圖在eclipse中創建一個空文件,但它不允許我。如果不輸入文件名,那麼完成按鈕沒有啓用。

任何人都可以告訴我,是在網絡上給出的答案是對的還是錯的?

注意我知道我們可以有不同的類名作爲文件名的前提是類不應該公共。如果類是不公開和文件名是從類名稱不同,那麼JVM找不到主方法

+0

如果您有不同的類名,那麼您必須使用java文件的名稱進行編譯並使用類的名稱運行。 –

+0

@ Mo.Ashfaq我們通常在終端運行時(java class_name)執行相同的操作。它有什麼不同?你是否指向像eclipse這樣的編輯器? –

回答

0

如果您將您的類聲明爲public,則文件名和類名必須相同,否則您可以在文件中具有不同的文件名和不同的類名。

+0

是的,我們可以有不同的類名,因爲文件名是類不是public.But我們不能運行,因爲JVM會抱怨主要方法沒有找到 – rocking

+0

如果你有不同的類名,那麼你必須編譯使用的名稱java文件並使用類的名稱運行。 –

1

他們聲稱那是什麼.java是一個合法的Java源文件,並且所得.class文件名從類的名稱被視爲在源說。

這可能是對的。但坦率地說,如果有一位面試官問你這個詭計問題,那麼正確的答案是「也許,但這將是非常糟糕的做法。」

+0

謝謝你的答案,但JVM可以找到主要方法。在eclipse中,我創建了類測試,點擊完成按鈕後,eclipse給了我公共類test.After,我刪除公共關鍵字,並重命名測試test1和saved.Now當我右擊那麼它沒有顯示我作爲Java應用程序選項運行 – rocking

+0

沒有公共main()完全是一個完全不同的問題。 – keshlam

+0

我編輯了我的帖子,我想你現在可以回答 – rocking