java中类的main方法总结
一、java中每個類都需要有main方法嗎?
每個類可以有也可以沒有main方法,
甚至所有類里可以都沒有main方法。如果你想從某個類做為入口開始運行整個程序。那么就把他設成 public ,之后再里面寫個main方法作為入口。
每個項目都要有一個主類,這個主類中必須得有main,用于程序的入口.在程序測試時,一般每個類中都有一個main,用于方便測試人員對類成員進行測試
不是,可有可無。但是你要執行的類中必須有,因為main函數是提供程序執行的進入口。比如你 java Test 那麼Test類中必須有個main函數。也可拿來做測試某個類用。如你要測試一下Test類內的方法(這時的Test類可能不是主類,假設這時此類只提供給主類一些功能),那麼你可以在Test類中加入一個main方法,調用Test類中的成員變量和方法,查看結果,達到測試的效果。
二、一個java文件中可包含多個main方法
一個java文件中可包含多個main方法
java中的main方法是java應用程序的入口,java程序在運行時,首先調用執行main方法。但并不是說java中只能有一個main方法,不同類中都可以包含main方法。但是當JVM進行編譯時,只會會選擇接口類里面的main方法,作為編譯的入口。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-JufYzJib-1640105308869)(https://raw.githubusercontent.com/xkyvvv/blogpic2/main/img/image-20211222001147510.png)]
一個Java文件至多包含一個公共類
編寫一個java源文件時,該源文件又稱為編譯單元。一個java文件可以包含多個類,但至多包含一個公共類,作為編譯時該java文件的公用接口,公共類的名字和源文件的名字要相同,源文件名字的格式為【公共類名.java】。
當同一個源文件中包含兩個public class時,JVM會立馬報出錯誤
但java文件中可以不包含任何public公共類,但編譯時JVM仍將與源文件名相同的類作為默認的接口。即便其他的類提供了main方法,JVM仍然無法編譯。
補充:如果包含main函數的類,是默認類,同樣可以編譯。
當且僅當默認為接口的類中包含main方法時才能進行編譯。
補充:
上面圖片中的class前面沒有修飾符,就是默認default的意思(不用把default寫出來)。
意思就是只能由跟這個類在同一個包中的類來訪問,比private限制更少,但比protected限制更多。
default(包訪問權限):
如果類里的一個成員(包括成員變量、方法和構造器等)或者一個外部類不使用任何訪問控制符修飾,就稱它是包訪問權限,default訪問控制的成員或外部類可以被相同包下的其他類訪問,但是在其他包中不能用import導入。
三、java中main為什么在類名中?
為什么要聲明一個main方法?我知道main方法是類的起點。但是為什么我們只應該把它聲明為public static void main(String args[])?
為什么我們不能宣布它為public static void test(String args[])?main是關鍵字嗎?JVM如何知道它將是起點?
應用程序必須從某個地方開始,是嗎?從《時代的黎明》(1972?)EDCOX1的0個字已經走了,為什么要用Java來改變它呢?
@當然,這個問題的措辭不清楚,我會修改的。問題似乎在于為什么該方法被命名為main,而不是為什么它需要是靜態的。
這不是關鍵字。“JVM如何知道這是起點?”>通過讀取其名稱"main"
@chrylis the op詢問為什么名字main,這似乎在我上面提到的問題中得到了回答。
@桑巴,對不起,第二個答案漏了。
§The JVM has to know some where the starting point of your program is.The way the designers chose to mark that is to call the entry method EDOCX1 original 0,because the same name is used for that purpose in C(which most programmers were familiar with the time)and it makes sense.他們對自己的名字沒有特殊的魔法,他們只是有選擇,而且這是一個實際的選擇。§
§When a program begins,it has to begin from some where…好吧,這是EDOCX1的音標0§§為什么停?§
§當JVM呼吁主要的方法,有非目標的存在對于階級的呼喚。So it has to have static method to allow this from class.§
§Why Public?§
The main method is called by the JVM to run the method which is outside the scope of project.
§Why Void?§
Think about it,once the main method finishes,it doesn’t mean that the program finished.如果空間是一個新的威脅,它可能是這些威脅仍然在運行。
據我所知,問題是關于main的名字,而不是簽名的其余部分。
總結
以上是生活随笔為你收集整理的java中类的main方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PMP考试总结
- 下一篇: linux可上网limbo镜像,limb