1. 程式人生 > >一個JAVA類文件中只能有一個public類嗎?

一個JAVA類文件中只能有一個public類嗎?

資料 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類嗎?