2016-11-29 61 views
3

我看到的大多數程序在公共類中都有主要方法,與無修飾符類相反。例如:有沒有真正的理由在公共類中使用Java?

public class Main 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello, World!"); 
    } 
} 

而不是

class Main 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("Hello, World!"); 
    } 
} 

從我讀,唯一的原因有類明確公開,是讓它自己的包外類可見。

main的工作僅僅是作爲你的實際程序API的一個插件,它可以輕鬆地與任何其他類一起使用(GUI/CUI一直在改變,必須設計成一次性的) 。

如果我不想讓該類對其他Java類可見,如果我需要它,我可以爲一個新的主類創建一個新的容器類,它意識到它可能被其他類使用,並且它將是公共的。

是否有任何理由默認爲主要「公共」設置容器類,除了教人們按照其中的類相同的方式命名它們的類(如果您省略公共,則不會執行該操作,並會導致混淆「爲什麼Foo.java生成Main.class?」)?

+3

10年寫作程序後真的打擾你嗎? – AdamSkywalker

+1

好點壞生病刪除它。 – Dmitry

+1

我只是說爲了清潔的原因... – XavCo7

回答

4

我認爲有3個原因,它通常是這樣做的方法:

  1. 感覺怪異有一類就是不公開
  2. 主類是在一個公共很少露出一個公共靜態方法API庫,所以它並不重要。 IDE通常默認生成公共類。
  3. 必須調用main方法的虛擬機的引導代碼被看作是該程序包的外部代碼,因此,公開該類使其可以訪問此邏輯外部代碼是正確的。
0

我不會有這方面的技術原因。

我能想到的非技術的原因是:

  • 公約。有多少人會被驚異地看到非公共主班?這種溢出的利潤?
  • 意向的表達。 public表示公共的,沒有修飾符意味着包私有。我會考慮主要類爲公衆使用,所以public是這個意圖的更好的表達。
+0

你是對的,當我看到一個沒有修飾符的類時,我需要考慮它爲什麼沒有修飾符,而如果我看到公共類或私有類,它爲什麼會顯得無趣就是這樣。 – Dmitry