主要方法是否屬於任何類?主要方法是否屬於任何類?
回答
它屬於一個類。看看任何你好,世界的實施,這將是很清楚的。
public static void main(String[] args) {
System.out.println("Hello World");
}
將不會按照原樣編譯。你需要在其周圍放置class HelloWorld { ... }
,在這種情況下,你可以說主要方法「屬於」HelloWorld
類。
但是,由於它是靜態,因此不屬於任何特定對象。在使用面向對象的語言時,需要熟悉的類和對象之間存在着重要的區別。 Learning Java: Objects and Classes是一個很好的起點。
Java代碼的每一行(除了import/package)都存在於一個類中(或者是一個類/接口聲明)。 main
也是如此。
'import'或'package'怎麼辦? ;-) – 2010-05-27 11:17:22
編輯。謝謝。 – miku 2010-05-27 11:20:20
評論怎麼樣? ;-) – 2010-05-27 11:28:46
是的。每個方法或字段都必須屬於一個類(或接口/枚舉)。
在Java中,任何應用程序在任何類中都必須有main
方法。它需要精確的公式:
查看更多in official lessons。
如果您將Web應用程序計爲應用程序,那就不是這樣。 Web應用程序不需要'main'方法。 – 2010-05-27 11:20:21
但是爲了執行你的web應用程序,一個'main()'方法必須已經運行......你只是不必寫它。 – Dolph 2010-05-27 14:21:46
如果您的意思是它是否屬於每個班級,情況並非如此。它屬於你定義它的類。
但是任何類都可以有靜態的main
方法。
它不像那個主要的方法屬於任何特定的類,它屬於我們在其中定義主要方法的那個類。它可以是任何類
java中的任何類都可以有一個公共靜態void main(String [] args)。在類中聲明的主要函數(就像任何其他靜態方法一樣)屬於類定義,但不是實例化實例。
如果您正在構建從類的集合的JAR文件,你可以指定該JAR中類包含在META-INF/MANIFEST.MF使用
Main-Class: fully qualified name of class (example: ie.mycode.MyApp)
應用程序main方法當你運行命令
java -jar [your jar file]
它將看清單,並開始執行在主對主類對象指定代碼。
正如前面提到的,它是從一個類,一部分,但不是任何類
如果在該"unnammed" or "default" package類,你的主要方法不會對call any other Java classes從初始級,其主要方法()。
雖然它可以工作,但它會大大限制您在該main
方法中實際執行的操作。
所以不使用任何類(I,E,而不是一個在默認包)
main
是通常的方法。唯一的約定是Java可以使用這個(也是唯一的)方法'啓動'一個應用程序。如果您將類傳遞給java.exe,它會嘗試反映此方法(這就是爲什麼方法簽名絕對嚴格!)並調用它(如果找到)。這實際上將'啓動應用程序'(iaw:第一個線程)。
它必須屬於一個類,與任何方法一樣,它必須位於您希望在編譯後執行的類中。
程序只能通過執行具有main方法的類開始(注:這是applicale對於大多數類型的Java應用小程序,例如,工作方式不同)
當我們試圖運行一個類,其爲什麼錯誤說:exception in thread main
這可能發生的路徑是不知道的JVM,那麼你會得到一個錯誤/異常類似下面
Exception in thread main: classdefnotfound........
如果主要屬於我們試圖然後運行類,只有當一個線程主正在運行
Java中的主要方法屬於一個類,但不屬於對象。對象在運行時創建。因此,由於Java中的主要main()
是應用程序的起點,因此無法從特定於實例的方法啓動應用程序。這就是爲什麼static
關鍵字與主要方法完美結合的原因。其實主要方法聲明的所有部分做出完美的感覺,當你覺得像「JVM」和畫面的主要方法做什麼(啓動應用程序):
public
,因爲這種方法必須由可訪問jvm(不是由你寫的)。這意味着這個方法可以在沒有對象的情況下被訪問(因爲它的表示從不改變),但是如果你再次像jvm一樣思考,這裏的邏輯很容易被理解; 「我沒有任何對象來創建(實例化)對象,所以我需要一個靜態方法來啓動應用程序,因爲根本沒有任何合乎邏輯的方法來獲取特定於實例的方法,因爲我沒有任何東西尚未創造物體「。void
此方法無法在邏輯上返回任何內容,因爲沒有任何內容尚未返回任何內容。這是應用程序的起點。main
我是沒有我的主要方法,你將不會有應用程序。String[] args
向我發送可能對我的啓動有用的數據。
- 1. 是否需要類的主要方法?
- 2. 'null'是否屬於任何類型?
- 3. 如果我在Ruby中定義一個方法,它是否屬於任何類?
- 4. JAVA類和主要方法
- 5. 在方法內設置類屬性時,是否需要釋放?
- 6. 如果只有主線程,是否有任何方法需要同步?
- 7. 任何方式來檢測QObject是否屬於「死」QThread?
- 8. 檢查方法是否是類方法和調用屬性
- 9. 如何添加類到主要方法
- 10. 主要方法是什麼?
- 11. 是否有啓發式來確定方法或字段是否屬於類中?
- 12. 呼叫從一個類的主要方法,另一個類的主要方法
- 13. 是否有類似於OnOrientationChanged的方法?
- 14. 是否有任何現在需要用getElementBy *方法現在
- 15. 是否有任何需要java的finalize方法?
- 16. 如何測試類屬性是否是實例方法
- 17. 任何替代方法來檢查是否有任何python屬性?
- 18. 屬性是否有方法?
- 19. 是否有任何方法像「popoverPresentationControllerWillDismissPopover」
- 20. LINQ的任何方法是否有效?
- 21. 是否需要includeFile()方法?
- 22. 我的主要Java類如何知道是否在任何其他java類中引發了任何異常
- 23. 任何基於URL測試動作是否存在的方法?
- 24. 在Django或Python中是否有任何方法用於預測?
- 25. 是否有類似的Junit設置方法在任何的Mockito
- 26. 是否有任何方法來轉換實例的類型
- 27. 衝突的數據類型是否有任何解決方法?
- 28. 是否有任何給struts2動作類的init方法?
- 29. Python:類方法中的類屬性是否等價於局部變量?
- 30. 是否有任何方法來確定變量是否包含MooTools類實例
現在理解了 – billu 2010-05-27 11:24:14
+1,好抓 - 看起來問題在於對'class'和'object'的理解! – 2010-05-27 11:34:12