一個java原始檔中必須有public類別嗎?
是的,一個來源檔案中有且只能有一個public類別。因為每個編譯單元(文件)都只能有一個public類,即每個編譯單元都有單一的公共接口,用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中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

testthepdfinanotherapptoderineiftheissueiswiththefileoredge.2.enablethebuilt inpdfviewerbyTurningOff“ eflblyopenpenpenpenpenpdffilesexternally”和“ downloadpdffiles” inedgesettings.3.clearbrowsingdatainclorwearbrowsingdataincludingcookiesandcachedcachedfileresteroresoreloresorelorsolesoresolesoresolvereresoreorsolvereresoreolversorelesoresolvererverenn

容器化Java應用:創建Dockerfile,使用基礎鏡像如eclipse-temurin:17-jre-alpine,複製JAR文件並定義啟動命令,通過dockerbuild構建鏡像並用dockerrun測試本地運行。 2.推送鏡像到容器註冊表:使用dockertag標記鏡像並推送到DockerHub等註冊表,需先登錄dockerlogin。 3.部署到Kubernetes:編寫deployment.yaml定義Deployment,設置副本數、容器鏡像和資源限制,編寫service.yaml創建

Importjava.ioandjava.net.SocketforI/Oandsocketcommunication.2.CreateaSocketobjecttoconnecttotheserverusinghostnameandport.3.UsePrintWritertosenddataviaoutputstreamandBufferedReadertoreadserverresponsesfrominputstream.4.Usetry-with-resourcestoautomati

VSCode中可通過快捷鍵快速切換面板與編輯區。要跳轉至左側資源管理器面板,使用Ctrl Shift E(Windows/Linux)或Cmd Shift E(Mac);返回編輯區可用Ctrl `或Esc或Ctrl 1~9。相比鼠標操作,鍵盤快捷鍵更高效且不打斷編碼節奏。其他技巧包括:Ctrl KCtrl E聚焦搜索框,F2重命名文件,Delete刪除文件,Enter打開文件,方向鍵展開/收起文件夾。

AwhileloopinJavarepeatedlyexecutescodeaslongastheconditionistrue;2.Initializeacontrolvariablebeforetheloop;3.Definetheloopconditionusingabooleanexpression;4.Updatethecontrolvariableinsidethelooptopreventinfinitelooping;5.Useexampleslikeprintingnumber

runthewindowsupdatetrubloubleshooterviaSettings>更新&安全> is esseShootsoAtomationfixCommonissues.2.ResetWindowSupDateComponentsByStoppingRealatedServices,RenamingTheSoftWaredWaredWaredSoftwaredSistribution andCatroot2Folders,intrestrestartingthertingthertingtherserviceSteStoceTocle

要有效使用Mockito進行Java單元測試,首先需添加Mockito依賴,Maven項目在pom.xml中加入mockito-core依賴,Gradle項目添加testImplementation'org.mockito:mockito-core:5.7.0';接著通過@Mock註解(配合@ExtendWith(MockitoExtension.class))或mock()方法創建模擬對象;然後使用when(...).thenReturn(...)等方式對模擬對象的方法行為進行存根,也可配置異

JavaserializationConvertSanObject'SstateIntoAbyTeSteAmForStorageorTransermission,andDeserializationReconstructstheObjectStheObjectFromThstream.1.toenableserialization,aclassMustimustimplementTheSerializableizableface.2.UseObjectObjectObjectObjectOutputputputputputtreamToserialializeanobectizeanobectementeabectenobexpent,savin
