當前位置:首頁 » 編程軟體 » 編譯單元可以不帶public類

編譯單元可以不帶public類

發布時間: 2022-07-14 00:16:29

A. 為什麼java文件中只能含有一個Public類

每個編譯單元都有單一的公共介面,用public類來表現。該介面可以按要求包含眾多的支持包訪問許可權的類。如果在某個編譯單元內有一個以上的public類,編譯器就會給出錯誤信息。

一個Java源文件中可以有多個類,但只能有一個public的類,並且public的類名必須與文件名相一致。一個文件中可以只有非public類,如果只有一個非public類,此類可以跟文件名不同。

(1)編譯單元可以不帶public類擴展閱讀

JAVA類中主要包含屬性、方法、構造方法、塊以及內部類。

屬性用來定義對象的數據;

方法用來定義對象的行為;

構造方法可以用來創建對象;

塊能夠用來在類載入時執行操作或者在每次實例化前執行通用操作;

內部類作為類的一個成員存在,能夠訪問外部類的屬性和方法。

類是對象的模板,使用類往往都需要首先對類進行實例化,即創建對象。要創建對象必須使用new關鍵字調用構造方法(constructor)才能完成,構造方法中往往對屬性進行實例化,也可以實現其他必要的功能,如讀取屬性文件等。

構造方法的作用是用來創建對象,使用new關鍵字調用。構造方法的名字必須與類的名字相同,並且大小寫敏感,同時構造方法不能聲明返回值類型,可以使用任意一種訪問修飾符,但是不能使用其他修飾符進行修飾,如static、final、abstract等修飾符都可以修飾構造方法。

B. JAVA 關於封裝的這個問題 為什麼會報錯

首先,建議題主直接把代碼貼出來;

其次,一個".java"源文件中可以有多個類,但只能有一個public的類,並且public的類名必須與文件名相一致。一個文件中可以只有非public類,如果只有一個非public類,此類可以跟文件名不同。

在java編程思想(第四版)一書中有這樣3段話(6.4 類的訪問許可權):

1.每個編譯單元(文件)都只能有一個public類,這表示,每個編譯單元都有單一的公共介面,用public類來表現。該介面可以按要求包含眾多的支持包訪問許可權的類。如果在某個編譯單元內有一個以上的public類,編譯器就會給出錯誤信息。

2.public類的名稱必須完全與含有該編譯單元的文件名相同,包含大小寫。如果不匹配,同樣將得到編譯錯誤。

3.雖然不是很常用,但編譯單元內完全不帶public類也是可能的。在這種情況下,可以隨意對文件命名。

C. 一個java源文件中可以有多個類,但只能有一個類是public的嗎

是的。

java程序是從一個public類的main函數開始執行的,就像C程序是從main()函數開始執行一樣。只能有一個public是為了給類裝載器提供方便。 一個public只能定義在以它的類名為文件名的文件中。

D. 程序中的主類如果不用public修飾,編譯能通過嗎

可以的。有關類的public修飾,有一個規定,就是一個.java文件裡面,最多隻能有一個public類(當然可以少於一個,就是0個了),否則編譯不通過。

另外一個約定是,運行入口的main方法必須放到與文件名同名的類裡面,比如T.java,裡面main方法只能放到class T裡面,否則不會被執行,但這只是約定,不會影響編譯,也就是說你放到別的類,比如class T2裡面也可以,但是不會通過java T命令來執行。

E. 淺談為什麼一個java源文件中只能有一個public類

1、每個編譯單元(文件)只能有一個public 類。這么做的意思是,每個編
譯單元只能有一個公開的介面,而這個介面就由其public 類來表示。
你可以根據需要,往這個文件裡面添加任意多個提供輔助功能的package 許可權的類。但是如果這個編譯單元裡面有兩個或兩個以上的public 類的話,編譯器就會報錯。
2. public 類的名字必須和這個編譯單元的文件名完全相同,包括大小
寫。所以對Widget 類,文件名必須是Widget.java,不能是widget.java 或WIDGET.java。如果你不遵守,編譯器又要報錯
了。
3. 編譯單元裡面可以沒有public 類,雖然這種情況不常見,但卻是可以
的。這時,你就能隨意為文件起名字了。

熱點內容
安卓工程師開發是什麼專業 發布:2025-02-08 08:38:15 瀏覽:677
怎麼用電腦和朋友遠程伺服器連接 發布:2025-02-08 08:29:52 瀏覽:232
如何播放咪咕視頻的緩存電影 發布:2025-02-08 08:28:17 瀏覽:568
台式電腦修改密碼在哪裡修改 發布:2025-02-08 08:25:18 瀏覽:297
linux編譯opencv 發布:2025-02-08 08:14:29 瀏覽:712
解除先制的密碼是多少 發布:2025-02-08 08:10:13 瀏覽:861
c語言程序設計豆瓣 發布:2025-02-08 08:08:06 瀏覽:526
學校伺服器如何進入密碼界面 發布:2025-02-08 08:05:45 瀏覽:821
UE4源碼編譯要多久 發布:2025-02-08 07:52:50 瀏覽:233
java架構師做什麼 發布:2025-02-08 07:38:32 瀏覽:774