为什么java程序以类定义开头?

时间:2017-07-04 10:32:01

标签: java class

据说java程序本身就是一个类,但我不知道这背后的逻辑。

java程序本身由一个类的定义(在导入包之后等)开始,而main方法本身是在一个类中定义的。

为什么会这样?

为什么主要方法必须包含在类中而不是作为单独的方法/函数包含在c,c ++等语言中。

例如java中的一个简单的hello world程序: -

public class HelloWorld
{
    public static void main(String[] args)
    {
        System.out.println("Hello world!"+"Hello again");
    }
}

为什么程序应该以类及其中包含的主要方法开头?

3 个答案:

答案 0 :(得分:2)

JVM并不了解类之外的概念方法。从根本上说,JVM调用的任何方法都必须在类中。 main方法是静态的,因为在java应用程序启动时,什么都不会被初始化,因此将其设置为静态允许JVM将其作为起始点。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

因为Java语言规范是这样说的!例如,请参阅here。或者更确切地说:

  

Java虚拟机通过加载指定的类然后在此指定的类中调用方法main来启动。

(在第12章开头Execution)中找到。

有时候事情背后没有“大”的原因.java语言的父亲可能会看看当时其他语言在创建Java时所做的事情。他们决定采用这种方法 - 并且从来没有一个艰难而紧迫的理由回来改变它。

除此之外:您必须了解JVM不关心Java源代码。它只关心Java字节码规范 - 以及作为已编译的.class文件的完整类。

换句话说:根本没有其他“单元”可以包含单个方法/函数而不是类。