2016-11-29 31 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

相关问题