【问题标题】:Just started learning Java. Why is the main() inside of a class?刚开始学习Java。为什么 main() 在类中?
【发布时间】:2015-01-23 18:27:41
【问题描述】:

我正在学习 Java,我注意到 main() 被放在一个类中。为什么?我不认为我的main() 是任何对象的成员。所以请告诉我如何解决这个问题。

【问题讨论】:

标签: java class


【解决方案1】:

我不认为我的main() 是任何对象的成员。

不是因为它是static 方法。它不属于任何对象,而是属于类本身。

除此之外,所有方法,包括main,都必须在类中定义。

更一般地说,类是编译后的 Java 代码中的最小单元,包含类实例的信息自行运行的行为代码(例如main 方法)。 p>

【讨论】:

  • 这里的关键是类不仅仅是对象的蓝图。类可以自己做事,static 类可以自己做所有事情。一个类实际上只是一个自包含的代码块。
  • 嗯,你也可以把main和其他方法放在enums里面。 Java 8 中还有 default 方法(但不包括 main),因此您不必必须在类中定义方法。
  • 重点是类是编译代码中的最小单位。所有信息都存储在类中,包括应用程序的入口点。
  • 您应该将类​​视为关注点和应用程序责任的解决方案。可执行文件的一项职责是运行应用程序。这应该是你的主要课程应该解决的一项责任。
【解决方案2】:

从本质上讲,Java 是高度面向对象的。所以一切都必须封装在一个类中。所有方法都必须放在一个类中。但是, main() 是不同的。一个类中只能有一个主函数,并且它必须始终是静态的,这意味着它不是对象的一部分,并且只有一个实例。当一个 java 应用程序被执行时,JRE 将寻找主类(即包含主函数的类)。 main() 是执行开始的地方。但是由于OO的本质,它必须放在一个类中。可以说这仅仅是因为 java 的骨架结构。没有其他特别的原因。

【讨论】:

    【解决方案3】:

    您必须将main() 放在一个类中。而且,它必须是static(这意味着它不是任何Object 的成员)。当您启动 Java 运行时环境 (JRE) 时,它将加载该类并调用 main()

    JLS-12.1 - Java Virtual Machine Startup 覆盖了这部分内容,

    Java 虚拟机通过调用某个指定类的方法main 开始执行,并传递给它一个参数,该参数是一个字符串数组。在本规范的示例中,第一类通常称为Test

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 2014-01-03
      相关资源
      最近更新 更多