【Java小疑問】java原始檔當中可以有多個類,但是為什麼只能有一個public類呢?
在 Java 中,同一個類檔案,僅可存在於一個 public 修飾類,且該 .java 檔案要與public 修飾類同名,否則將會報錯。原因如下:
1、只有一個public類
第一、每個編譯單元(檔案)只能有一個public 類。這麼做的意思是,每個編譯單元只能有一個公開的介面,而這個介面就由其public 類來表示。
第二、java程式的入口是main方法,所以被定為public的這個類裡一定是含有main方法的類,而且該類的名稱要和檔名一致,因為虛擬機器開始要找main的。
第三、你可以根據需要,往這個檔案裡面新增任意多個提供輔助功能的public 許可權的類。但是如果這個編譯單元裡面有兩個或兩個以上的public 類的話,編譯器就會報錯。
第四、在標準的java程式碼編寫時,無論程式碼量多少,最好一個原始檔裡只有一個類或介面(介面也要單獨寫在一個原始檔裡),因為JAVA是物件導向的語言,每個類都是抽象的結果,所以每個類都要單獨寫在一個原始檔裡。第五、編譯單元裡面可以沒有public 類,指的是沒有公開的介面,但是可以在同一個包內訪問的;public的意思是在包內包外均可訪問。雖然這種情況不常見,但卻是可以的。這時,你就能隨意為檔案起名字了。
2、public 類的名字必須和這個編譯單元的檔名完全相同,包括大小寫。
第一、如果你不遵守,編譯器又要報錯了。
首先Java是被解釋執行的。它在執行時並不是將所有的class檔案全都放到記憶體中。而是在遇到import的時候才去相應的檔案目錄找相應的class檔案。
第二、對於一個public類,它是可以被專案中任何一個類所引用的,只需在使用它前import一下它所對應的class檔案即可。將類名與檔名一一對應就可以方便虛擬機器在相應的路徑(包名)中找到相應的類的資訊。如果不這麼做的話,就很難去找,而且開銷也會很大。
3、public類裡是不是一定要有main函式
1:不一定要有main,一個專案中可只有一個main
2:控制檯應用中,必須要有main方法,該方法將作為程式執行的入口.
3:web應用中可以不要main,因為IE預設有main方法.
4、Java中可以有多個main函式嗎?
每一個java檔案都會有一個public static void main(String[] args)作為程式作為入口,一個類有且只有一個,但是可以有與他不同的,比如:void main(),void main(int a),都是可以的。
在不同類中,是可以有多個public static void main(String[] args),但是程式不會以另一個作為程式入口,區別就在於class前的public,第二個class是不允許用public修飾的。
相關文章
- Java中可以宣告一個類為Static嗎?Java
- 【Java小疑問】類和方法 前面新增public和不新增public的區別Java
- java類中 多個方法求和.Java
- 在一個xxx.java檔案裡寫多個類(非內部類)Java
- java的一個類!Java
- Java中Class類與Object類之間有什麼關係?JavaObject
- 這兩個java類的作用是什麼?Java
- java內部類,為什麼需要內部類?Java
- 為什麼建議一個容器中只執行一個程式
- Java能做什麼?學完Java可以從事什麼工作呢?Java
- Java到底是什麼?學習java可以做什麼呢?Java
- 為什麼每個Java的類欄位預設要設為finalJava
- 一個Java類的載入Java
- 簡單問題:JAVA物件的淺複製,有一個疑問!Java物件
- 使用java設計一個名為Time的類Java
- 【vue】為什麼v-for中需要一個key呢?Vue
- 當一個java程式設計師到底有多難Java程式設計師
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- Java Tutorial中的一個問題,我怎麼就是看不懂呢?Java
- Java自定義一個字典類(Dictionary)Java
- 驚喜!一個檔案多個【請求類】的另類寫法
- 如何唯一確定一個 Java 類?Java
- 在Java中,final修飾的類有什麼特點Java
- 學Java需要什麼技巧呢?分享這4個Java
- java 一個類實現兩個介面的案例Java
- 伺服器可以有哪些分類呢伺服器
- Java™ 教程(管理原始檔和類檔案)Java
- Java 當一個int和double相加 會發生什麼?Java
- 模板類成員函式的定義和宣告為什麼要放在一個檔案中函式
- Java —— 檔案類(File 類)Java
- 一個小問題 TestClient.javaclientJava
- 在SLSB呼叫後的java類寫多執行緒可以麼?Java執行緒
- Java中的13個原子操作類介紹Java
- 有沒有什麼管理類的書可以推薦?
- java類成員中的訪問級別有哪些Java
- Java基礎-設計一個Java類所需的方法(轉)Java
- Java一行程式碼可宣告多個同類變數Java行程變數
- 推薦一個java操作ftp的工具類JavaFTP