【问题标题】:How is main() processed in java?java中main()是如何处理的?
【发布时间】:2015-01-13 23:30:34
【问题描述】:

请向我解释一些 Java 基础知识。

  1. 为什么Java 文件中需要有一个同名的类?如果里面没有这个名字的类怎么办?
  2. 如果一个文件包含多个类,其中包含 main() 方法,启动文件时会选择哪一个?同样,如果文件的任何类中都没有这样的方法怎么办?

【问题讨论】:

  • "1. 为什么java文件中必须要有同名类?" 语言设计选择; 1a 试一试。 “2. 如果一个文件包含多个类,其中包含 main() 方法,启动文件时会选择哪一个?” 这取决于您如何从 CLI 调用该类; 2a 它将无法运行,因为您必须有一个main 方法,假设您将其指定为JVM 执行的主类
  • 你不需要 main,这只是 java 运行器的常用入口点。如果您使用不同的跑步者,则需要提供不同的入口点。例如,junit 使用注释来指示要运行的方法。 Maven surefire 几乎可以调用您包含的任何方法。 Eclipse 可以直接调用方法,也可以使用 junit/maven 作为运行器。

标签: java main


【解决方案1】:
  1. 因为 Java 设计者认为如果在 Apple.java 而不是 Banana.java 中定义 Apple 类,这将是一个很好的约定,并且会使开发人员的工作更轻松。
  2. 您永远不会将文件名传递给java 执行程序。你传给它一个类名,比如com.mycompany.myproject.MyMain。如果这个类没有main方法,java会显示错误信息。

【讨论】:

    【解决方案2】:

    为什么java文件必须有一个同名的类 呢?如果里面没有这个名字的类怎么办?

    因为java编译器需要从.java文件中的public类开始执行。你可以在里面有任意数量的类,但只有一个带有程序名称的公共类

    如果一个文件包含多个类,其中包含 main() 方法, 启动文件时会选择哪一个?再说一次,如果 文件的任何类中都没有这样的方法吗?

    你自己试试,你可以在一个类中重载main()。它将从 default 开始执行。看看Multiple main() methods in javaUse of class definitions inside a method in Java 以获得一些清晰的理解ig

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 2015-04-10
      • 2016-08-25
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多