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");
    }
}

java之main函数(笔记)的更多相关文章

  1. Java面向对象 Main函数 静态的应用 单例设计模式

     Java面向对象 Main函数 静态的应用与单例设计模式 知识概要             (1)Main函数的细解 (2)静态的应用,静态变量,静态代码块,静态函数 (3)单例设计模式 1.M ...

  2. eclipse的maven项目,如何使用java run main函数

    项目使用maven管理,一般说来就使用jetty:run了.但是对于做功能测试和集成测试的用例,需要使用自定义的quickrun来运行进行测试环境的参数设定和功能隔离,google一番发现maven有 ...

  3. [Java基础]java的main函数

    1.main函数详解 main在编程中的形式:public static void main(String[] args) { - } public : 公共的. 权限是最大,在任何情况下都可以访问. ...

  4. java中main函数解析(转载)

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

  5. java中main函数的String[] args

    写java程序时main函数必须有一个字符串数组即String[] args 作用:用来获取用户从命令行输入的参数 如果main函数中不写字符串数组,则将会报错

  6. java里面main函数为什么要用static修饰

    这学期刚开java,因为之前只写过C++和Python没接触过java,有些写法挺不习惯的,今天写完一个程序,run的时候发现提示the selection can't be launched.... ...

  7. java中main函数解析

    从写java至今,写的最多的可能就是主函数 public static void main(String[] args) {} 但是以前一直都没有问自己,为什么要这么写,因为在c语言中就没有这样子的要 ...

  8. java中main函数怎么调用外部非static方法

    使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法. 举例如下: 测试函数(这是错误的): public class Test { public sta ...

  9. java的main函数组成

    package test;/*public static void main(String[] args)主函数特殊之处:1.格式是固定的2.被jvm(虚拟机)所识别和调用 public:因为权限必须 ...

随机推荐

  1. js String对象

    字符串(String) 字符串(String)使用长度属性length来计算字符串的长度: 在字符串中查找字符串 字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置: 实例 ...

  2. canvas之2D上下文

    1.填充和描边 (1)fillStyle (2)strokeStyle 2.绘制矩形 (1)fillRect() (2)strokeRect() (3)clearRect()   :清除画布上的矩形区 ...

  3. PHP 生成二维码

    利用PHP QRcode生成二维码: php QRcode 官网 http://phpqrcode.sourceforge.net/ 在官网下载 phpqrcode.php就ok啦: 然后,查看自己的 ...

  4. 怎样增加windows 系统的环境变量Path的默认长度的限制?

    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" ...

  5. CSS 样式使用

    [attribute] 用于选取带有指定属性的元素. [attribute=value] 用于选取带有指定属性和值的元素. [attribute~=value] 用于选取属性值中包含指定词汇的元素. ...

  6. SpringMVC中向服务器传递时间参数时出现的问题

    1. 问题描述: 今天在SpringMVC应用中上传参数的时候遇到如下问题: The request sent by the client was syntactically incorrect 这说 ...

  7. [转载]Robotium API 翻译(三)——判断测试结果的方法assert、is、search

    该文来源于:http://blog.csdn.net/dongmu1986   下面的这些方法都主要用来判断测试结果是否与预期结果相符,一般把is和search方法放在assert里面判断.asser ...

  8. 关于Ue4的深度模板

    http://www.unrealchina.net/forum.php?mod=viewthread&tid=100234

  9. Ignatius's puzzle

    Ignatius's puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  10. flexbox布局的兼容性

    http://ayqy.net/blog/flexbox布局的兼容性/ 写在前面 flex布局早在2009年就有了,而现在是2015年6月8日,使用最新的flex语法会发现支持程度并不好,即使是在“高 ...