为什么 Java 中的 main 函数驻留在 class 中?
Why does the main function in Java reside in a class?
我刚开始学习Java。而程序的主要功能总是驻留在class中。
public class t{
public static void main(String[] args){
// do stuff
}
}
我学过C++,里面的main函数不需要在class里面。为什么在 Java 我们必须这样做?
为什么 Java 中的 main 函数不能像在 C++ 中那样没有 class?
可能出于与您在问题末尾加问号相同的原因:这就是他们决定完成的方式。
main
方法是约定俗成的 "this is how the entry point's method signature should look" 的结果,该约定并未将其从语言语义中排除。
Java 不支持 classes/interfaces 之外的方法,因此它必须包含在其中。
因为这就是语言的设计方式。 JVM首先加载包含main函数的class,然后调用main()
方法。如果不加载 class,main()
将无法调用,即 main()
没有它的 封闭 class.
- 所有方法必须驻留在 Java 中的 class 中。
main
是一种方法。
因此,main
必须位于 class。
此外,class不仅仅是一个对象的蓝图。它本身就是一段代码,可以做某事。它所做的其中一件事是通过包含 main
方法来提供应用程序的入口点。
因为所有东西都在class里面Java。 Java 代码仅由 class 组成。它们可以嵌套在自身或包层次结构中,但不允许出现在 class.
之外
唯一的例外是 package
和 import
语句。
"every method in Java must be in a class because the spec says so" 答案只是故事的一部分。通过将 main() 放在 class 中,可以在一个项目中有多个入口点。即多个 classes 与 main() 方法。这允许您在 运行 时间而不是编译时间 select 一个不同的主程序 class。例如
java -cp program.jar com.example.Class1
或者如果你想 运行 来自同一个罐子的不同主
java -cp program.jar com.example.Class2
让我们考虑在 java
中允许以下内容
void main (){
f1();
f2();
}
int f1(){
f2();
return 1;
}
int f2(){
return 3;
}
由于 java 中没有原型,main 如何调用 f1 或 f2 或者 f1 如何调用 f2?
我认为这是原因之一
因为 java 是 oop 语言,除非你创建一个 class,否则你什么也做不了。这使得 java 面向对象的语言。并且 java 被设计为首先加载 public class 并调用主要方法
我刚开始学习Java。而程序的主要功能总是驻留在class中。
public class t{
public static void main(String[] args){
// do stuff
}
}
我学过C++,里面的main函数不需要在class里面。为什么在 Java 我们必须这样做?
为什么 Java 中的 main 函数不能像在 C++ 中那样没有 class?
可能出于与您在问题末尾加问号相同的原因:这就是他们决定完成的方式。
main
方法是约定俗成的 "this is how the entry point's method signature should look" 的结果,该约定并未将其从语言语义中排除。
Java 不支持 classes/interfaces 之外的方法,因此它必须包含在其中。
因为这就是语言的设计方式。 JVM首先加载包含main函数的class,然后调用main()
方法。如果不加载 class,main()
将无法调用,即 main()
没有它的 封闭 class.
- 所有方法必须驻留在 Java 中的 class 中。
main
是一种方法。
因此,main
必须位于 class。
此外,class不仅仅是一个对象的蓝图。它本身就是一段代码,可以做某事。它所做的其中一件事是通过包含 main
方法来提供应用程序的入口点。
因为所有东西都在class里面Java。 Java 代码仅由 class 组成。它们可以嵌套在自身或包层次结构中,但不允许出现在 class.
之外唯一的例外是 package
和 import
语句。
"every method in Java must be in a class because the spec says so" 答案只是故事的一部分。通过将 main() 放在 class 中,可以在一个项目中有多个入口点。即多个 classes 与 main() 方法。这允许您在 运行 时间而不是编译时间 select 一个不同的主程序 class。例如
java -cp program.jar com.example.Class1
或者如果你想 运行 来自同一个罐子的不同主
java -cp program.jar com.example.Class2
让我们考虑在 java
中允许以下内容void main (){
f1();
f2();
}
int f1(){
f2();
return 1;
}
int f2(){
return 3;
}
由于 java 中没有原型,main 如何调用 f1 或 f2 或者 f1 如何调用 f2? 我认为这是原因之一
因为 java 是 oop 语言,除非你创建一个 class,否则你什么也做不了。这使得 java 面向对象的语言。并且 java 被设计为首先加载 public class 并调用主要方法