JAVA中的主函数,所有java程序的运行起点就是这个方法,除了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 classArgsDemo {public static voidmain(String[] args) {

String str= newString();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

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

at ArgsDemo.main(ArgsDemo.java:5)

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

public classA {public static voidmain(String[] args)

{for(int i=0;i

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

}

}public classB {public static voidmain(String[] args)

{

c= newA();

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 classB {public static voidmain(String[] args)

{//A c = new A();

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

A.main(b);

}

}

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

java public main_JAVA:public static void main(String args[]) 详解相关推荐

  1. 关于public class 类名{ public static void main(String[] args)}的一些说明

    Test.java /*1.在java中任何有效的代码必须写到"类体"当中,最外层必须是一个类的定义.2.public表示公开的,class表示定义一个类,Test是一个类名.类名 ...

  2. 【Java】错误: 在类 Test1.Test2 中找不到 main 方法, 请将 main 方法定义为:    public static void main(String[] args)的解决方案

    问题:运行Java程序的时候碰到如下问题 错误: 在类 Test1.Test2 中找不到 main 方法, 请将 main 方法定义为:    public static void main(Stri ...

  3. Java工程中的主函数public static void main(String[] args)

    Java工程中的主函数 主函数简介 主函数声明中各关键词的作用 public static void String[] args 一个Java工程中可以有多个主函数 平时写java project的时 ...

  4. 浅析 public static void main(String[] args)

    最初接触Java程序的时候,老师就教导我们要从下面这句开始学起,据说是约定俗成的,所以直到今天,还是只知道java程序应该这么写,具体为什么这么写,鄙人惭愧. 1 public class Class ...

  5. 错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

  6. [转载] public static void main(String[] args) 隐含了什么?

    参考链接: 了解Java中" public static void main"中的" static" public class TestSort { publi ...

  7. 浅谈public static void main(String[] args)

    public static void main(String[] args){//代码 } mian函数是程序的执行入口 public:表示main方法可以由任何类访问.(java虚拟机调用main方 ...

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

    public static void main(String[] args)到底 是什么意思? public static void main(String[] args), 是Java程序的入口地址 ...

  9. main方法为什么要写成:public static void main(String [] args){}?

    使用idea创建src的java文件时自带一个Main.java文件,该文件输出一句"Hello World",这是为什么呢?原来Hello World 中文意思是『你好,世界』. ...

最新文章

  1. HTML开发中的一个问题
  2. 计算机培训专业中心架,国家高技能人才培养车工培训方案.doc
  3. linux定时脚本任务
  4. 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展
  5. codeforces82 D. Two out of Three(记忆化搜索)
  6. String转Double
  7. 川职院单招计算机考什么专业,四川单招考什么科目
  8. 数组 最大差值_【每日算法Day 97】经典面试题:求两个数组最小差
  9. 前端后台的爱恨情仇——接口调试
  10. 周育如的音标口诀大全_音标记忆顺口溜(48个),快速记忆音标口诀!
  11. 系统仿真实践中的精益思维(随感)
  12. 信号转换 | 如何将正弦波转换成方波?
  13. tortoise-orm 分页码(python)
  14. arm服务器的芯片编年史,64位ARM新篇章 历数史上经典64位处理器
  15. leach分簇功能实现matlab,LEACH分簇算法实现和能量控制算法实现
  16. bootstrap之双日历时间段选择控件—daterangepicker
  17. C#加载本地相对路径HTML页面
  18. 阿里的防DDoS能力有多强,小蚁带你了解一下
  19. cmd控制台窗体大小设置
  20. html平板电脑打不开,苹果平板电脑浏览器打不开网页

热门文章

  1. 5G无线关键技术 — 非正交多址接入技术
  2. error: C2039: “staticMetaObject”: 不是“QGraphicsItem”的成员
  3. linux环境oracle冷备份,Oracle 热备份和冷备份的区别
  4. 利用jieba分词分析小说三
  5. [生存志] 第33节 黄帝战蚩尤
  6. 【每日新闻】国内首个3D缝纫机器人研制成功
  7. (原创)梅子与锤子的一生(光阴故事)
  8. 如何从手机远程控制uTorrent
  9. google翻译的用法 使用translate.google.com翻译整个网页内容
  10. Jetpack系列之Paging2.0 分页加载