为什么Java中的主程序被放入一个类?

Rom*_*man 16 java class

为什么主要方法必须放入一个类?我理解OOP的主要思想,但我不明白为什么主程序是在一个类中定义的.这样的类会在某处实例化吗?我的意思是课外没有代码.定义类并且从不使用此类的对象的原因是什么?

Bom*_*mbe 28

Java虚拟机(JVM)的某个地方启动应用程序.由于Java没有"类外的东西"的概念,因此JVM调用的方法必须类中.因为它是静态的,所以还没有创建该类的实例.


Cha*_*ere 14

虽然java在类之外没有方法的概念,但是允许开发人员跳过实际编写类定义的所有细节并且只是让人们直接编写主函数(如果他们也想要的话)也很容易.

但是当人们开发java时,人们对OO更加教条,然后他们就是现在,这可能发挥了重要作用.可以将其视为Opinionated软件的一个示例

它有一个有用的功能,您可以将其作为任何类的主要功能并将它们作为程序启动.在您处理这些类的特定功能时,它非常方便.如果main()必须在一个单独的文件中,而不是一个类的一部分,那将使事情变得困难.如果你想要一个main()函数怎么办?如果你想编写由类外的main调用的函数怎么办?他们会进入全局命名空间吗?多个main()函数是否会发生碰撞?

不像那些问题是不可能解决的,但除此之外还有一些额外的打字,这对新手来说尤其令人烦恼,目前的解决方案并不算太糟糕,特别是因为IDE会在你创建新文件时生成基本的类结构.


Vin*_*nie 6

它确实简化了虚拟机的设计.由于虚拟机已经知道如何运行类的静态方法,因此它可以像处理任何其他静态方法一样处理main方法.

如果将main方法放在除类之外的任何其他构造中,则必须修改VM以了解另一个构造使事情变得更复杂.