JAVA一個文件寫多個類,並且是同級類,需注意:
- 在一個.java文件中可以有多個同級類, 其修飾符只可以public/abstract/final/和無修飾符
- public修飾的只能有一個,且必須要與文件名相同;
-
因為jvm虛擬機為了提高查找類的速度,使用import語句導入的時候,只會導入對應空間的文件名所對應的class文件,而public文件是大家都要使用的,因此直接導入這個類名對應的class文件即可。
-
若沒有public的則可與文件名不同
Java編譯器在編譯的時候,如果整個Java文件(編譯單元)都沒有public類(對外的公開接口類),類加載器子就無需從這方面直接去加載該編譯單元產生的所有的字節碼文件(.class文件),那么也就是無需去尋找編譯后字節碼文件存放位置。而類名和文件名一致是為了方便虛擬機在相應的路徑中找到相應的類所對應的字節碼文件。所以在沒有public類的Java文件中,文件名和類名都沒什么聯系。
-
該文件同級的類之間可以互相調用,但是除了public的類,其他不能夠在其他文件調用
在一個.java文件中由類/Enum/接口/Anontation其中至少一個類型組成。單獨一個方法/變量不能獨自存在與文件中,所以公用方法的封裝也是做成類方法。原因是java是類加載機制,需要編譯一個java文件成多個class文件,當類來使用。
用javac 編譯這個.java文件的時候,它會給每一個類生成一個.class文件
原文鏈接:https://blog.csdn.net/q5706503/article/details/84349692
