命令行传参

如果你希望运行一个程序再传递给它消息,这要靠传递命令行参数给main()函数实现

例如 : JavaDoc文档,在命令行中传入参数

D:\Untitled\src\Java_Demo01>javadoc -encoding UTF-8 -charset UTF-8 Demo005

main方法传参

package Java_Demo01;
public class Demo007 {public static void main(String[] args) {//修饰符       void为无返回值  字符串类型参数 args数组     }
}

使用命令行进行传入参数

package Java_Demo01;
public class Demo007 {public static void main(String[] args) {for(int i=0;i<=args.length;i++){//args.length为main方法里面的数组args的长度System.out.println(i+"的值为"+args[i]);}}
}

头文件package中导入的包是Java_Demo01,必须在src下的Java_Demo01执行命令

命令行参数是在命令行执行程序的时候跟在程序的后面

D:\Untitled\src\Java_Demo01>javac Demo007.java    //编译D:\Untitled\src\Java_Demo01>cd ../               //切换到包目录D:\Untitled\src>java Java_Demo01.Demo007//执行Java_Demo01.Demo007
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0at Java_Demo01.Demo007.main(Demo007.java:5)
//提示报错信息出现异常
D:\Untitled\src>java Java_Demo01.Demo007 哈哈哈哈 哈哈哈 哈哈
//使用命令行传参,在名字后面跟上参数
0=哈哈哈哈     //输出
1=哈哈哈          //输出
2=哈哈           //输出
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3at Java_Demo01.Demo007.main(Demo007.java:5)D:\Untitled\src>

可变参数

  • JDK1.5开始,java支持传递同类型的可变参数给一个方法
  • 在方法声明中,在指定参数类型后加一个省略号(…)
  • 一个方法中只能声明一个可变参数,它必须是方法的最后一个参数,任何普通参数必须在它之前声明

为什么要使用可变参数?

 public static void main(String[] args) {}public static int Max(int i,int x){ }public static int Max(int i,int x,int y){ }public static double Max(double i,double x){ }public static int Max(int i,int x,int y,int z){ }}

如上,在使用Max方法有4个不同参数的方法,可以进行方法重载,但是类型和参数值都是固定的,比如:我相传3个参数,则必须定义传3个参数的方法,想传10个参数就要定义传10个参数的方法。可变参数更类似于一个数组

可变参数注意事项:

如下我定义了一个test方法该方法没有返回值且为实例方法。定义三个形式参数为int类型的x、double类型的z、char类型的y,还有int类型的可变参数(可变长度)

在方法里定义可变参数时必须将可变参数放置最后,并且所有的参数必须是一个类型。

int…ints相当于定义了一个int类型的数组,这个数组的名字叫做ints

public void test(int x,double z,char y,int...ints){//可变参数最后定义}

如下图调用test方法时参入参数

public static void main(String[] args) {Demo008 D=new Demo008();D.test(12,12.23,'哈',213213,2321321,434324,467);
}

在调用test方法时需要进行传入参数,第一个参数对应的是int类型的x,第二个参数对应的是double类型的z,第三个参数对应的是char类型的y,第四个可变参数,无论传入多少个参数,只要是int类型的数都为数组ints。

循环输出test方法的值

 public void test(int x,double z,char y,int...ints){System.out.println(x);       //输出x的值System.out.println(z);       //输出z的值System.out.println(y);       //输出y的值//循环输出数组ints的所有值for (int i=0;i<ints.length;i++){//数组的第1个下标是从0开始的,定义变量i的值为0//i的值小于数组的长度。//循环一次i的值就会加1    System.out.println(ints[i]);//输出i的值}}

执行结果:

12
12.23
哈
213213
2321321
434324
467

案例:使用可变参数排序出参数中的最大值

public int Max(int...ints){//定义Max方法,定义形式可变参数int max=0;  //设置最大数的初始值为0for (int i=0;i<ints.length;i++){//循环次数为ints的最大长度if (ints[i]>max){//如果ints[i]的值大于maxmax=ints[i];//则max的值等于ints[i]//直到循环判断出最大的值}}System.out.println("最大的数为:"+max);//输出max的值return max;//返回值 max
}

main方法进行调用传参

    public static void main(String[] args) {Demo009 D=new Demo009();D.Max(13,123,3423,67786678,323432545,443243243);}

执行结果:

最大的数为:443243243

java全栈系列之JavaSE--命令行传递参数与可变参数021相关推荐

  1. java全栈系列之JavaSE--冒泡排序028

    冒泡排序是在一组数组中将相邻的两个元素进行比较,可以按由大到小或者由小到大的循序排列, 冒泡排序示意图: 每循环一次相邻的两个数进行大小比较,若由小到大的循序则大的数据在小的数据右侧 冒泡排序流程图 ...

  2. Java全栈系列笔记

    Java全栈系列笔记 全部文档.项目.源码: github:https://github.com/name365/Blog-Java 码云:https://gitee.com/yang365/Blog ...

  3. java全栈系列之JavaSE-面向对象(方法的定义与调用)030

    java面向对象编程 面向对象&面向过程 前言: 之前的代码大多数都是属于面向过程的,在程序中有main()方法也叫主方法,程序会由上至下执行main()里面的内容.程序里的方法:例如编写一个 ...

  4. Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归

    Java方法详解 什么是方法? Java的方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法再程序中被创建,在其他地方被引用 [方法原子性]一个方 ...

  5. java全栈系列之JavaSE-面向对象(方法重写)037

    子类在调用父类的私有方法中不能直接调用,但是可以通过get方法进行调用,修改属性的值可以通过set方法进行修改.而子类想要修改父类中的方法可以使用方法重写进行操作. 方法重写与之前的方法重载不同 回顾 ...

  6. java全栈系列之JavaSE--数组的三种初始化方法及内存分析024

    java内存分析 堆中存放new出来的对象和数组,存放具体的值的变量存放在栈里面 在定义和创建数组的时候内存发生了什么? 当用户定义了一个数组,例如:int [ ] Array;只是定义了一个数组没有 ...

  7. java全栈系列之JavaSE-稀释数组029

    稀疏数组 当一个数组中的大部分元素为同一值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方式: 记录数组中一个有几行几列,有多少个不同的值,把具有不同值的元素和行列以及值记录在一个小规模的数组 ...

  8. java全栈系列之JavaSE--JDK的安装以及环境搭建001

    java开发环境搭建 JDK下载与安装 配置环境变量 JDK目录介绍 卸载JDK 1.删除java安装目录 2.删除JAVA_HOME,删除path下关于Java的目录,以及环境变量 3.dos窗口查 ...

  9. java全栈系列之JavaSE-面向对象(继承详解)035

    类的继承 java三大特性之一的继承,指的是子类继承父类的属性和方法,java类中只有单继承没有多继承,比如说:一个父亲(父类)可以有多个儿子(子类),但是一个儿子(子类)只能有一个父亲(父类) 在类 ...

最新文章

  1. __name__ ==“ __main__”怎么办?
  2. Cocoapods 第三方类库管理工具
  3. [导入]伍迷创意随想集 之 聚众广告创精品
  4. django html文本编辑器,django xadmin 集成DjangoUeditor富文本编辑器
  5. javaWEB开发中get方式请求的乱码问题解决
  6. System.Threading.Timer使用心得
  7. mac 安装cmake
  8. element vue 纵向滑动条_Vue 部分
  9. 养成一个习惯有多难?不如先从一个小目标开始
  10. jenkins构建记录日志_构建企业日志记录层的清单
  11. click事件在什么时候出发_什么是移动端?
  12. 一个小型的中文文本分类系统(项目链接文末)——《ML算法原理和实践》学习笔记
  13. c语言全局变量(c语言全局变量怎么定义)
  14. 32767+1=-32768 补码
  15. Android 11 功能和 API 概览
  16. 安全网关设备有哪些 安全网关产品介绍
  17. UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props
  18. 入行大数据,需要学习哪些编程语言?
  19. 30岁女IT月薪3W的背后:从数据报表到数仓、中台,这工具帮了大忙
  20. iOS 轻松使用 App 数据统计

热门文章

  1. 浅议信息系统控制在企业中的应用(lunwen+开题报告)
  2. tensorflow学习笔记
  3. 大学计算机基础学生实验报告经验总结,安卓作业实验报告心得体会
  4. 水仙花数(c语言程序实现)
  5. 用淘汰的手机做家庭监控
  6. html手机页面弹幕效果,H5移动端弹幕动画实现
  7. 2019年终职场盘点:如何用5级管理法,经营好自己最重要的资产?
  8. user_agreement
  9. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)
  10. [BZOJ1067][SCOI2007]降雨量(线段树)