首頁  >  文章  >  Java  >  一個java原始檔中必須有public類別嗎?

一個java原始檔中必須有public類別嗎?

青灯夜游
青灯夜游原創
2021-04-13 16:23:1915688瀏覽

是的,一個來源檔案中有且只能有一個public類別。因為每個編譯單元(文件)都只能有一個public類,即每個編譯單元都有單一的公共接口,用public類來表現;該接口可以按要求包含眾多的支持包訪問權限的類。

一個java原始檔中必須有public類別嗎?

本教學操作環境:windows10系統、java8、Dell G3電腦。

問題:一個".java"來源檔案中是否可以包含多個類別(不是內部類別)?有什麼限制?

  答案:可以有多個類,但只能有一個public的類,並且public的類別名稱必須與檔案名稱相符。一個檔案中可以只有非public類,如果只有一個非public類,這類可以跟檔名不同。

為什麼一個java原始檔只能有一個public類別?

  在java程式設計思想(第四版)一書中有這樣3段話(6.4 類別的存取權限):

  1.每個編譯單元(檔案)都只能有一個public類,這表示,每個編譯單元都有單一的公共接口,用public類來表現。此介面可依要求包含眾多的支援包存取權限的類別。如果在某個編譯單元內有一個以上的public類,編譯器就會給予錯誤訊息。

  2.public類別的名稱必須完全與含有該編譯單元的檔案名稱相同,包含大小寫。如果不匹配,同樣將得到編譯錯誤。

  3.雖然不是很常用,但編譯單元內完全不帶public類別也是可能的。在這種情況下,可以隨意對文件命名。

當java原始檔不存在public類別時,會出現什麼狀況?

  

此時程式編譯通過,在對應路徑下產生了三個.class檔案。直接點擊運行,程式是不能運行的,我們需要滑鼠右鍵點擊程式----->Run As----->Java Aplication----->選擇資料來源

個人總結:

一個編譯單元(java檔案)可以存在多個類,在編譯時產生多個不同的.class文件,.class文件便是程式運作的資料來源。 java將public類別作為每個編譯單元的資料接口,只能有一個,不然不能處理存在多個類別的java檔。當一個編譯單元(java檔)有多個非public類別時,執行階段需要對資料來源進行選擇。

相關影片教學推薦:Java影片教學

#

以上是一個java原始檔中必須有public類別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn