回答
是的,你至少需要一個類纔能有一個程序,但是沒有,你不需要任何方法(與其他答案相反)。
你需要一個類的原因是因爲在Java中,所有代碼都在類內部。所以要有任何代碼,你需要一個類。但是,代碼不一定需要在方法中。它也可以在初始化器中。所以,在這裏是沒有方法的完整的Java程序:
class LookMaNoMethods {
static {
System.out.println("Hello, world!");
System.exit(0);
}
}
這一點讓...
$ javac LookMaNoMethods.java
$ java LookMaNoMethods
Hello, world!
$
編輯:從Java 7只靜態塊上面的代碼並沒有主要的方法不產生任何輸出。主要方法現在是強制性的。沒有main方法的代碼編譯成功。
有趣。具有靜態初始化器的類是一個有效的程序,即使沒有'main'方法,如果沒有靜態初始化器,那麼將再次需要該方法。我想知道標準究竟是如何準確地說明入口點的要求。 – 2011-03-05 14:53:21
靜態塊在內部實現爲特殊類型的方法(「
此程序僅適用於因爲靜態初始化程序在顯示有關缺少主要方法的錯誤消息之前調用System.exit()。 – 2011-03-05 17:21:43
是的。在Java中,您總是需要一個具有main函數的類來讓JRE運行它。
這不是原因。 Ruby也是面向對象的,但它不需要任何類。原因只是「因爲」。 – 2011-03-05 14:29:39
嗯,我同意這個意思是不正確的。 '太陽想要這樣嗎?'。 – Konerak 2011-03-05 14:30:22
Groovy(顯然建立在JVM之上)不需要任何類來運行。但是生成的字節碼定義了幕後的類。 – 2011-03-05 14:33:14
程序需要一個入口點。入口點必須是一種方法。在Java中,每個方法都必須包含在一個類中。
這意味着每個程序都必須至少有一個類。
這是一個非常合理的答案,但「入門點必須是一種方法」並不完全是真實的。看到我的答案是一個不是方法的入口點。 – rlibby 2011-03-05 14:48:19
從JVM的角度來看;是。從程序員的角度來看,它可以是Class或Enum。
public enum AAA {
AAA;
public static void main(final String[] args) {
System.out.println("H");
}
}
編輯:即使你有一個空的main方法的類,有很多它的幕後工作,只需運行「空」類你的核心類。可以通過設置-verbose:class
JVM參數來查看這些類的列表(大約200個來自java.*
程序包)。
Java枚舉*很怪異。 – 2011-03-05 14:39:18
但是Enum是一個類:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html。新的關鍵字是隱藏類關鍵字的語法糖。 – duffymo 2011-03-05 15:45:03
是的,你至少需要一門課。
- 1. 每個java程序都需要每個jvm運行嗎?
- 2. 每個中斷處理程序都需要自旋鎖嗎?
- 3. 每個環境都需要新的Facebook應用程序嗎?
- 4. 每個目錄都需要一個ashx處理程序文件嗎?
- 5. 每個新視圖都需要一個新的layoutparams嗎?
- 6. 每個錶行都需要一個ID嗎?
- 7. Ruby。但每個人都需要添加一個獨特的類
- 8. PHP MVC - 每個頁面都需要自己的類嗎?
- 9. 每個線程都不需要它自己的JVM副本嗎?
- 10. JavaScript類 - 每個用途都需要「this.varname」嗎?
- 11. 當使用多個文件在C++中編寫程序時,每個類都需要它自己的嗎?
- 12. Ruby on Rails 3中的每個角色都需要一個控制器嗎?
- 13. Begin Tran每次都需要一個新名字嗎?
- 14. 我需要一個處理程序嗎?
- 15. Java。需要一個程序與加密
- 16. 每個窗體和/或控制檯應用程序都需要安裝嗎?
- 17. 每個fmxl文件(場景)都需要一個自己的控制器嗎?
- 18. ZeroMQ上的每個隊列都需要自己的端口嗎?
- 19. 我需要一個畫廊的幫助,每個人都有jCarousel
- 20. 每個頁面上的InitializeCulture()都需要嗎?
- 21. 每個業務邏輯都需要成爲symofny2中的一項服務嗎?
- 22. 一個Java應用程序中的多個類,每個都有一個主函數
- 23. 擴展一個類,每個類都有很多實現,每個實現都有Scala中的主要方法
- 24. 每個請求都需要執行SetAuthCookie
- 25. Netty處理程序對每個連接都是唯一的嗎?
- 26. 我需要每個應用程序的證書嗎?
- 27. 需要幫助瞭解一個PHP示例,而每個人都需要
- 28. 每個單元格都需要有一個Section - Parse和Swift
- 29. 每個派生表都需要一個別名
- 30. Java - 我需要一個數據庫嗎?
對於核心和企業Java以及其他任何類型而言,總是如此。 – duffymo 2011-03-05 14:30:09
您需要加載對象和字符串,然後才能加載空的mian(String [])方法,這會產生三個;) – 2011-03-05 15:07:24
@Peter:它位於'java。*'包中的200個類的某處;看到我更新的答案。 – 2011-03-05 15:20:50