需要对main()进行类封装

问题描述 投票:0回答:1

既然 main() 被静态化,以便 JVM 访问它,因为它没有封装类的实例,那么为什么需要封装它呢?

java static program-entry-point
1个回答
0
投票

正如 @Sören 所说,直到最近的版本,都只是假设所有内容都需要位于类内部,甚至是程序的入口点(可能是为了在类内部注入更多依赖项)。那是因为 Java 是一种纯粹的面向对象语言(至少是这样)。

现在,您可以编写

main
而无需实际定义任何类。这发生在 Java 11 以后。

public static void main(String[] args) {
    System.out.println("Hello, World!");
}

运行时将根据包含该方法的

.java
文件的名称进行编译并自动创建一个类。

Java 的其他版本(>= 21)允许您定义主要逻辑,甚至无需创建方法。

System.out.println("Hello, World!");

MyRunner.java
文件内将被 JVM 翻译为:

public class MyRunner {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.