main是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了main是啥意思相关的知识,希望对你有一定的参考价值。

在java/C/C++中,main为程序运行的主入口方法,每个程序只有一个,
例如:
#include <stdio.h>
int main(int argc, char *argv[])

int i;
printf("命令行参数有%d个,分别是:\n",argc);
for(i=0;i<argc;i++)
printf("%s\n",argv[i]);
return 0;

这是带参数的main函数。
C语言中为什么一定要有main函数?
【1】任何一个C++程序都包含一个main函数,这是规定。main函数由系统直接调用,是程序执行的入口。 (和C语言中一样)
【2】main函数与用户自己定义的函数都是各自独立的模块,即函数不能嵌套定义,通俗的说,你不能在一个函数的函数体内定义另一个函数,即使在main函数中也不行。但main函数可以对用户自己定义的函数进行调用(但main函数只能由系统调用)。用户自己定义多个函数时,这几个用户自己定义的函数之间都可以互相调用 。
参考技术A n.
主要部分, 体力, 力量, 大陆, 要点, 干线
adj.
主要的, 重要的, 全力的
n.
[计] 主群组本回答被提问者采纳
参考技术B 形容词:意思是“主要的”。 参考技术C 主函数,及程序的入口,就是一开始程序先进入main()里面去 参考技术D 主函数

`public static void main args` 是啥意思?

【中文标题】`public static void main args` 是啥意思?【英文标题】:What does `public static void main args` mean?`public static void main args` 是什么意思? 【发布时间】:2015-05-30 09:04:45 【问题描述】:

我不确定这是什么意思,每当你写代码之前,人们都会这样说

public static void main(String[] args) 

这是什么意思?

【问题讨论】:

docs.oracle.com/javase/tutorial/getStarted/application/… 【参考方案1】:

这里稍微详细解释一下为什么main方法声明为

public static void main(String[] args)

Main 方法是 Java 虚拟机 (JVM) 的 Java 程序的入口点。假设我们有一个名为Sample的类

class Sample 
     static void fun()
     
           System.out.println("Hello");       
       
 

class Test 
      public static void main(String[] args)
      
                Sample.fun();
        

这个程序将在编译后作为java Test 执行。 java 命令将启动 JVM 并将我们的 Test.java 类加载到内存中。由于 main 是我们程序的入口点,JVM 会搜索声明为 publicstaticvoid 的 main 方法。

为什么必须将 main 声明为 public?

main() 必须声明为public,因为我们知道,只要程序执行开始并且 JVM 不属于我们的程序包,它就会被 JVM 调用。

为了访问包外的 main,我们必须将其声明为 public。如果我们将其声明为 public 以外的任何内容,它会显示 Run time Error 而不是 Compilation time error

为什么 main 必须声明为静态的?

main() 必须声明为静态,因为 JVM 不知道如何创建一个类的对象,所以它需要一种标准的方式来访问 main 方法,这可以通过将 main() 声明为 static 来实现。

如果一个方法声明为static,那么我们可以在类外部调用该方法,而无需使用语法ClassName.methodName();创建对象。

这样JVM就可以调用我们的main方法为&lt;ClassName&gt;.&lt;Main-Method&gt;

为什么 main 必须声明为 void?

main() 必须声明为 void,因为 JVM 不期望来自 main() 的任何值。所以,必须声明为void

如果提供了其他返回类型,则为RunTimeError,即NoSuchMethodFoundError

为什么 main 必须有字符串数组参数?

main() 必须将字符串参数作为数组,因为 JVM 通过传递命令行参数调用 main 方法。由于它们存储在字符串数组对象中,因此它作为参数传递给main()

【讨论】:

详细解释加1!【参考方案2】:

根据Java language specification,Java 程序的执行从main() 方法开始。 main() 方法应该遵循特定的语法,可以解释为:

public static void main(String[] args)

public - 访问说明符,表明所有其他类都可以访问main()

void - 返回类型,main() 不返回任何内容。

String args[] - main() 方法的参数,它应该是一个字符串类型的数组。

static - 访问修饰符。 main 方法应该始终是静态的,因为可以在不创建类实例的情况下调用“main()”方法。

让我们假设,我们正在执行一个 Helloworld java 程序。

在执行程序时,我们使用命令

java Helloworld.

在内部,这个命令被转换成

Helloworld.main()

通过将main() 方法设为静态,JVM 调用main() 方法而不首先创建对象。

【讨论】:

【参考方案3】:

在 Java 中,您的主要方法必须始终是:

public static void main(String args[])

    程序执行从main() 函数开始,因此是main() 函数。

    必须是public,以便外部环境可以访问。

    main() 方法始终是静态的,因为您知道程序执行从main() 方法开始,并且没有包含main() 方法的类的实例被启动。因此,由于静态方法可以在不需要任何实例的情况下运行,因此它被声明为静态的。

    Java 是独立于平台的,因此您可以尝试在一个系统上编译 java 文件并尝试在另一个系统上执行类文件。每台机器的位架构可能不同,因此主函数的返回类型必须始终为main()

希望这会有所帮助。

【讨论】:

【参考方案4】:

Public = 此方法对所有其他类可见。

static = 此方法不需要运行实例。

void = 此方法不返回任何内容。

main() = Main 方法(第一个运行的方法)。

String[] = 字符串数组。

args = 数组名称。

【讨论】:

【参考方案5】:

public --> 访问说明符。任何其他类都可以访问此方法。

static --> 方法绑定到类,而不是类的实例。

void --> 返回类型。该方法不返回任何内容。

main(String[] args) --> 方法名是main()。它需要一个字符串数组作为参数。 String[] 参数是命令行参数。

注意:上面定义的main()方法是程序的入口点,如果你改变签名,那么你的程序可能无法运行。

【讨论】:

以上是关于main是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

main是啥意思,在C语言中又是啥意思

C语言中 main 是啥意思?

`public static void main args` 是啥意思?

C语言中 main 是啥意思?详细的啊

ModuleNotFoundError:__main__ 不是包是啥意思?

main() 主函数是啥意思啊