一個JAVA類文件中只能有一個public類嗎?
阿新 • • 發佈:2017-10-05
資料 pri blog 外部 title java get cnblogs bsp
測試代碼一:
1 public class Test {
2 public static void main(String[] args) {
3
4 }
5 }
6 public class Test1{
7
8 }
測試結果:
(公有類TestTwo必須定義在它自己的類文件中)
結論:所以,一個類文件只能有一個public類。
測試代碼二:
1 public class Test {
2 public static void main(String[] args) {
3
4 }
5 public class innerClass{
6
7 }
8 }
測試結果:
(編譯通過)
其中innerClass為Test內部類。
通過查找資料得知:
內部類可以擁有private訪問權限、protected訪問權限、public訪問權限及包訪問權限。比如上面的例子,如果成員內部類Inner用private修飾,則只能在外部類的內部訪問,如果用public修飾,則任何地方都能訪問;如果用protected修飾,則只能在同一個包下或者繼承外部類的情況下訪問;如果是默認訪問權限,則只能在同一個包下訪問。這一點和外部類有一點不一樣,外部類只能被public和包訪問兩種權限修飾。(來源:Java內部類詳解)
結論:
- java源文件中直接定義的public類只能有一個,且該類名必須與源文件名一致。
- 內部類可以理解為外部類的一個成員,成員可以用public修飾。
一個JAVA類文件中只能有一個public類嗎?