为什么Java中的main函数驻留在类中?

时间:2015-02-16 13:32:02

标签: java class

我刚开始学习Java。程序的主要功能总是存在于一个类中。

public class t{
  public static void main(String[] args){
  // do stuff
  }
}

我学过C ++,在那里主要功能不需要在课堂上。为什么在Java中我们必须这样做?

为什么没有类的Java中存在主函数,就像在C ++中一样?

7 个答案:

答案 0 :(得分:3)

可能出于同样的原因,你在问题的最后加上问号:这就是他们决定如何做到的。

main方法是一个约定的结果,该约定说“这是入口点的方法签名应该看起来的样子”,这不会使它免于语言语义。

Java不支持类/接口之外的方法,因此它必须包含在一个方法中。

答案 1 :(得分:0)

因为这就是语言的设计方式。 JVM首先加载包含main函数的类,然后调用main()方法。如果没有加载课程,则无法调用main(),即main()在没有封闭类的情况下不存在。

答案 2 :(得分:0)

  1. 所有方法必须驻留在Java中的类中。
  2. main是一种方法。
  3. 因此,main必须位于一个类中。

    此外,一个类不仅仅是一个对象的蓝图。它本身就是一大块代码。它所做的一件事是通过包含main方法来提供应用程序的入口点。

答案 3 :(得分:0)

因为所有内容都在Java中的类中。 Java代码仅包含类。它们可以嵌套在自身或包层中,但不允许任何内容出现在类之外。

唯一的例外是packageimport语句。

答案 4 :(得分:0)

“Java中的每个方法都必须在一个类中,因为规范是这样说的”答案只是故事的一部分。通过在类中包含main(),可以在项目中具有多个入口点。即带有main()方法的多个类。这允许您在运行时而不是编译时选择不同的主类。 e.g。

java -cp program.jar com.example.Class1

或者如果你想从同一个jar中运行一个不同的主

java -cp program.jar com.example.Class2

答案 5 :(得分:0)

让我们考虑一下Java中是否允许

void main (){
  f1();
  f2();

}
int f1(){
  f2();
  return 1;
}
int f2(){
   return 3;
}

由于Java中没有原型,因此如何将主调用f1或f2或将f1调用f2? 我认为这是原因之一

答案 6 :(得分:0)

由于Java是oop语言,因此除非您创建类,否则您将无法做任何事情。这使得Java成为面向对象的语言。 Java就是这样设计的,它首先要加载公共类并调用main方法