為什么只能有一個(gè)public類 一個(gè)java文件中可以有多個(gè)public類?
一個(gè)java文件中可以有多個(gè)public類?當(dāng)您可以在一個(gè)java源文件中定義多個(gè)類,并且有import語(yǔ)句和package語(yǔ)句時(shí),您應(yīng)該特別注意以下規(guī)則:一個(gè)源文件中只能有一個(gè)公共類。一個(gè)源文件可以
一個(gè)java文件中可以有多個(gè)public類?
當(dāng)您可以在一個(gè)java源文件中定義多個(gè)類,并且有import語(yǔ)句和package語(yǔ)句時(shí),您應(yīng)該特別注意以下規(guī)則:一個(gè)源文件中只能有一個(gè)公共類。一個(gè)源文件可以有多個(gè)非公共類。源文件的名稱應(yīng)與公共類的類名一致。例如,如果源文件中公共類的類名為employee,則源文件應(yīng)命名為employee員工.java. 如果在包中定義了類,那么package語(yǔ)句應(yīng)該位于源文件的第一行。如果源文件包含import語(yǔ)句,則應(yīng)將其放置在package語(yǔ)句和類定義之間。如果沒(méi)有package語(yǔ)句,import語(yǔ)句應(yīng)該位于源文件的頂部。Import語(yǔ)句和package語(yǔ)句對(duì)源文件中定義的所有類都有效。在同一個(gè)源文件中,不同的類不能有不同的包聲明。類有幾個(gè)訪問(wèn)級(jí)別,類也分為不同的類型:抽象類和最終類。這些將在下面的章節(jié)中介紹。除了上述類型之外,Java還有一些特殊的類,比如內(nèi)部類和匿名類。
為什么JAVA文件中只能含有一個(gè)Public類?
每個(gè)編譯單元(文件)只能有一個(gè)公共類。這意味著每個(gè)編譯單元只能有一個(gè)公共接口,由其公共類表示。我認(rèn)為這可能是從軟件架構(gòu)設(shè)計(jì)和安全性設(shè)計(jì)中得出的結(jié)論。如果要運(yùn)行包含main()的類,它不必是公共的。Java虛擬機(jī)實(shí)例通過(guò)調(diào)用類的main()來(lái)運(yùn)行Java程序。main()必須是public static void并接收字符串?dāng)?shù)組作為參數(shù)。任何具有這樣main()的類都可以用作java程序的起點(diǎn)。這并不意味著帶有main()方法的類必須是公共類。文件名必須與公共類的類名一致。(如果文件中有一個(gè)公共類),我們可以看到如果有多個(gè)公共類,那么文件名應(yīng)該屬于哪個(gè)公共類?顯然,一個(gè)java源文件只能有一個(gè)公共類。因此總結(jié)如下:一個(gè)java源文件最多只能有一個(gè)公共類。當(dāng)存在公共類時(shí),源文件名必須與其一致,否則無(wú)法編譯。如果源文件中沒(méi)有公共類,則文件名和類之間沒(méi)有一致性要求。至于main(),您不必將其放入public類來(lái)運(yùn)行程序。