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. blade用法

    一.blade条件判断,foreach循环写法 @if(isset($fileInfo) && !empty($fileInfo)) @foreach($fileInfo as $k) ...

  2. hadoop 分布式缓存

    Hadoop 分布式缓存实现目的是在所有的MapReduce调用一个统一的配置文件,首先将缓存文件放置在HDFS中,然后程序在执行的过程中会可以通过设定将文件下载到本地具体设定如下: public s ...

  3. JSP获取客户端的IP地址的方法

    //声明以下方法 <%! public String getRemortIP(HttpServletRequest request) { if (request.getHeader(" ...

  4. zookeeper启动错误 transaction type: 2 error: KeeperErrorCode = NoNode for /hbase

    hbase伪分布式,与zookeeper同一台机器的时候,运行一段时间,启动zookeeper的时候,日志中有如下错误,导致无法启动zookeeper java.io.IOException: Fai ...

  5. C#性能测试方法

    用 System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); for (int i ...

  6. -bash: /bin/rm: Argument list too long的解决办法

    当目录下文件太多时,用rm删除文件会报错: -bash: /bin/rm: Argument list too long 提示文件数目太多. 解决的办法是使用如下命令: rm -fr ls 输出所有的 ...

  7. Hadoop建立IPC连接和数据读写

    建立IPC连接 IPC Client通过调用getConnection获取IPC连接,具体流程图如下: 服务器端的IPC连接代码分散在Listener和Server.Connection中. List ...

  8. 《隆重介绍 思源黑体:一款Pan-CJK 开源字体》

    关于思源黑体 思源黑体是谷歌与 Adobe 联合开发,支持简体中文.繁体中文.日文.韩文以及英文:支持 ExtraLight.Light.Normal.Regular.Medium.Bold 和 He ...

  9. float了的元素和内联元素不支持margin:auto

    float了的元素和内联元素不支持margin:auto

  10. ACM: HDU 5285 wyh2000 and pupil-二分图判定

     HDU 5285  wyh2000 and pupil Time Limit:1500MS     Memory Limit:65536KB     64bit IO Format:%I64d &a ...