`

public static void main(String[] args){}函数诠释

阅读更多

主函数的一般写法如下:

  public static void main(String[] args){…}

  下面分别解释这些关键字的作用:

  (1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。

  (2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

  (3)void关键字表明main()的返回值是无类型。

  **(4)参数String[] args,这是本文的重点。

  第一、程序使用者可以在命令行状态下向某个类传递参数。看下面的例子:

  public class ArgsDemo {

  public static void main(String[] args) {

  String str = new String();

  for (int i = 0; i < args.length; i++) {

  System.out.println(args[i]);

  str += args[i];

  }

  System.out.println(str);

  }

  }

  使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然后使用“java ArgsDemo 参数一 参数二 参数三 …”的格式向ArgsDemo类传递参数。该示例程序将首先输出参数,然后输出所有参数的和。比如java ArgsDemo a b c,将得到这样的输出:

  a

  b

  c

  abc

  需要注意的是,如果这里的循环条件不是i <args.length,而是i <5,则在命令行中输入的参数必须是5个,否则将会报错,错误类型为:

  Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3

  at ArgsDemo.main(ArgsDemo.java:5)

  第二、可以在另一个类中向包含main()的类传递参数,如下例:

  public class A {

  public static void main(String[] args)

  {

  for(int i=0;i <args.length;i++)

  System.out.println(args[i]);

  }

  }

  public class B {

  public static void main(String[] args)

  {

  c = new A();

  String[] b = {"111","222","333"};

  c.main(b);

  }

  }

  首先定义一个class A,在A中定义一个main()函数,在该函数中输出参数args。然后定义一个classB,在B中初始化一个A的实例c,然后向c传递参数,并且调用c的main方法打印出传入的参数值。输出结果如下:

  111

  222

  333

  由于main()函数是静态函数,即不需要实例化也能使用,所以B使用下面的写法也能完成相同的功能:

  public class B {

  public static void main(String[] args)

  {

  //A c = new A();

  String[] b = {"111","222","333"};

  A.main(b);

  }

  }

  总结:参数args的主要作用是为程序使用者在命令行状态下与程序交互提供了一种手段。此外在其他类中直接使用main()函数,并传递参数也是可行的,虽然这种方法不太常用,但毕竟为我们提供了一种选择。

分享到:
评论

相关推荐

    JAVA习题及实验-电子工业大学出版!

    2. `public static void main(String args[])` 是Java程序的入口点,程序从这里开始执行。 3. `int i=1, n=10, s=0;` 分别声明并初始化了三个整型变量,`i`作为循环计数器,`n`为要累加到的数,`s`用于存储累加的...

    java笔试题目

    public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { o.i++; } } class Other { public int i; } ``` **解析**: - ...

    稳定性专题 | StackOverFlowError 常见原因及解决方法

    每一个 JVM 线程都拥有一个私有的 JVM 线程栈,用于存放当前线程的 JVM 栈帧(包括被调用函数的参数、...public class SimpleExample {public static void main(String args[]) { a(); }public static void a() {int

    Java基础编程代码-包含main()、输入输出、基本数据类型、数组、基本排序算法等的代码

    public static void main(String[] args) 其中,public 是访问修饰符,static 表示该方法可以直接通过类名调用,void 表示该方法不返回任何值,main 是方法名,String[] args 是方法的参数列表,表示命令行参数。 ...

    java編成百例(部分)

    public static void main( String args[] ){ //构造函数 Container container = getContentPane(); //得到容器 container.setLayout( new BorderLayout() ); //设置布局管理器为Borderlayout container.add...

    JAVA_必考的程序阅读.doc

    public static void main(String[] args) { Test o = new Test(); o.amethod(); } public void amethod(){ int oi = 012; //八进制表示的数字10 System.out.println(oi); //输出:10 } } ``` 这里的`012`是...

    Android studio 运行main 函数的方法

    public static void main(String[] args) { // ... } } package com.han; public class HanTest2 { public static void main(String[] args) { // ... } } ``` 在Android Studio中运行`main()`函数,你需要...

    java新手超级入门——类结构篇.docx

    - **主函数**:`public static void main(String[] args)`,是Java程序执行的起点。 - **源文件**:每个源文件可以包含一个公共类(或接口)以及其他非公共的类或接口。 - **类**:Java的基本单位,用于定义对象的...

    java中main函数解析.docx

    public static void main(String[] args) ``` 1. **`public`**: 表示该方法是公共的,可以在任何地方被调用。 2. **`static`**: 表明这是一个静态方法,意味着它可以在不创建类实例的情况下被调用。 3. **`void`**: ...

    Java中static、this、super、final用法.docx

    public static void main(String[] args) { Simple.go(); // 调用静态方法 } } ``` - **用途**:静态方法常用于提供应用程序中的实用工具功能。在Java标准库中,许多类都包含静态方法,如`System.out.println()...

    C#-Hello,Wrold

    public static void Main(string[] args) { Console.WriteLine(args[0]); } } ``` 此版本允许通过命令行参数向程序传递信息,并输出第一个参数。这种方式常用于接收用户输入或配置信息。 ### 4. 构造函数初始化...

    2023年6月8日作业

    public static void main(String[] args) { System.out.println("HelloWorld"); } } ``` 案例2 - `Apple.java`: ```java public class Apple { public static void main(String[] args) { System.out.println...

    java个人所得税计算程序

    java 个人所得税计算程序 1.1. 类名:IncomeTax 1.1.1. 类描述 程序入口类,完成菜单显示、输入、回显、计算个人所得税、修改相关计算参数的总调度。...5) public static void main(String args[]) //主程序入口

    C#中委托的例子(简单)

    static void Main(string[] args) { TestClass testClass = new TestClass(); MyDelegate mydelegate = new MyDelegate(testClass.HelloDelegate); //产生delegate对象 mydelegate("Hello delegate"); ...

    java面试题大全.pdf

    public static void main(String args[]) { Student s = new Student(); } } ``` 构造函数`Student(String s_name)`用于初始化`Student`对象的`name`属性。然而,在`main`方法中,尝试创建一个`Student`对象却...

    day12_函数式接口、方法引用_每日作业卷1

    public static void main(String[] args) { showLongTime(() -&gt; System.out.println(System.currentTimeMillis())); } ``` ##### **2. IntCalc** **定义**: 定义一个函数式接口`IntCalc`,其中包含一个抽象方法`...

    7.内部类、泛型、递归、IO、异常.md

    public static void main(String[] args) { // 直接实例化静态内部类 OuterClass.InnerClass innerClass = new OuterClass.InnerClass(); // 如果要在其他类中实例化这个内部类,则可以通过导入的方式简化写法...

Global site tag (gtag.js) - Google Analytics