1.标准的main函数形式  

  对于main函数,只要是

public static void main(String[] args)
public static void main(String... args)
public static void main(String args[])

  这样的,虚拟机都能找到并进入程序,如果你的main函数没有这样写,会提示找不到main函数。

  2.main函数的修饰

  (1)public,因为需要从外部调用;

  (2)static,这时main所在的类还没有实例化;

  (3)void,表明不返回值。

  3.main函数的一般性

  除了main是程序的入口外,main函数就是一个普通的函数,每个类都可以有。我们可以对main函数进行调用,重载...

  4.重载main方法

public class test {
    public static void main(int i) {
        System.out.println("int main : " + i);
    }
    public void main(char c) {
        System.out.println("char main : " + c);
    }
    public void main(String s) {
        System.out.println("char main : " + s);
    }
    public static void main(String[] args) {
        test temp = new test();
        main(11);
        temp.main('t');
        temp.main("temp");
    }
}

  5.调用main方法

public class test {
    private static boolean done = false;

    public static void print() {
        if(!done) {
            done = true;
            System.out.println("in print");
            String[] args = {"a", "b", "c"};
            main(args);
        }
    }

    public static void main(String[] args) {
        for(String s : args)
            System.out.print(s + " ");
        print();
    }
}

  6.继承main方法

class superTest {
    public static void main(String[] args) {
        System.out.println("in super");
    }
}

public class test  extends superTest{
    public static void main(String[] args) {
        superTest.main(args);
        System.out.println("in test");
    }
}

  7.调用另外一个程序的main方法

  这里我只是调用同一个.java文件下的类,你可以调用不同的.java的类,不同package的类的main方法,只要你能在Class.forName()里给出正确的路径。

package test;

import java.lang.reflect.Method;

public class testClass{
    public static void main(String[] args) {
        Class<another> c = null;
        try {
            c = (Class<another>) Class.forName("test.another"); //找到另外一个程序的class
            Method m = c.getDeclaredMethod("main", args.getClass()); //找到该class的main方法
            m.invoke(null, (Object) new String[0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("in test");
    }
}

class another {
    public static void main(String[] args) {
        System.out.println("in another");
    }
}

最新文章

  1. extern的用法
  2. C#访问Azure的资源
  3. Storm:最火的流式处理框架
  4. iOS _BSMachError: (os/kern) invalid capability (20)
  5. Data Base MySQL的常用命令
  6. ASPX的Timer位置没放正确,导致整页刷新,而不是UpdatePanel里的内容刷新。
  7. javascript 中的console.log的作用
  8. POJ 1308 Is It A Tree?--题解报告
  9. 【转】Header Only Library的介绍
  10. NYOJ--STL--擅长排列的小明(强大的string :: iterator 和next_permutation)
  11. Fiddler简介
  12. 一道JS 连续赋值运算的问题
  13. VS2015安装时问题汇总
  14. 一、K3 WISE 实施顾问教程《进度1-谈谈实施顾问》
  15. Ubuntu x86-64汇编(3) 数值操作指令
  16. 【源码】rm zip 删除文件夹中大量的小文件 百万 扫描文件时间
  17. [Java] Java API文档下载方法
  18. 是什么优化让 .NET Core 性能飙升?(转)
  19. 《深入理解Elasticsearch》README
  20. Linux rsync 企业级应用

热门文章

  1. css3易混淆属性详解
  2. 《DSP using MATLAB》示例Example5.6
  3. [自动运维]ant脚本打包,上传文件到指定服务器,并部署
  4. Floyd_Warshall POJ 3660 Cow Contest
  5. C# 词法分析器(六)构造词法分析器
  6. 寻找房间中心zz
  7. iOS之03-类的合理设计
  8. BZOJ4428 : [Nwerc2015]Debugging调试
  9. webpack入门教程
  10. 如何在 ejs 模板中使用 helper function 外部函数进行特殊处理?