为什么Java中的main()方法总是静态的?


Java 的 main() 方法总是静态的,这样编译器就可以在创建对象之前或无需创建类的对象的情况下调用它。

  • 在任何 Java 程序中,main() 方法都是编译器开始程序执行的起点。因此,编译器需要调用 main() 方法。
  • 如果允许 main() 为非静态的,则在调用 main() 方法时,JVM 必须实例化其类。
  • 在实例化时,它必须调用该类的构造函数。如果该类的构造函数带参数,则会出现歧义。
  • 类的静态方法可以直接使用类名调用,无需创建类的对象。
  • Java 中的 main() 方法必须声明为 publicstaticvoid。如果缺少任何一个,Java 程序将编译,但会抛出运行时错误。

示例

class Book {
   public static void getBookInfo() { //static method
      System.out.println("Welcome to TutorialsPoint Library");
   }
}
public class Test {
   public static void main(String[] args) {
      //Call static method of Book class using class name only
      Book.getBookInfo();
   }
}

输出

Welcome to TutorialsPoint Library

更新于: 2019年7月30日

15K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告