java全栈系列之JavaSE--命令行传递参数与可变参数021
命令行传参
如果你希望运行一个程序再传递给它消息,这要靠传递命令行参数给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相关推荐
- java全栈系列之JavaSE--冒泡排序028
冒泡排序是在一组数组中将相邻的两个元素进行比较,可以按由大到小或者由小到大的循序排列, 冒泡排序示意图: 每循环一次相邻的两个数进行大小比较,若由小到大的循序则大的数据在小的数据右侧 冒泡排序流程图 ...
- Java全栈系列笔记
Java全栈系列笔记 全部文档.项目.源码: github:https://github.com/name365/Blog-Java 码云:https://gitee.com/yang365/Blog ...
- java全栈系列之JavaSE-面向对象(方法的定义与调用)030
java面向对象编程 面向对象&面向过程 前言: 之前的代码大多数都是属于面向过程的,在程序中有main()方法也叫主方法,程序会由上至下执行main()里面的内容.程序里的方法:例如编写一个 ...
- Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归
Java方法详解 什么是方法? Java的方法是语句的集合,他们在一起执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法再程序中被创建,在其他地方被引用 [方法原子性]一个方 ...
- java全栈系列之JavaSE-面向对象(方法重写)037
子类在调用父类的私有方法中不能直接调用,但是可以通过get方法进行调用,修改属性的值可以通过set方法进行修改.而子类想要修改父类中的方法可以使用方法重写进行操作. 方法重写与之前的方法重载不同 回顾 ...
- java全栈系列之JavaSE--数组的三种初始化方法及内存分析024
java内存分析 堆中存放new出来的对象和数组,存放具体的值的变量存放在栈里面 在定义和创建数组的时候内存发生了什么? 当用户定义了一个数组,例如:int [ ] Array;只是定义了一个数组没有 ...
- java全栈系列之JavaSE-稀释数组029
稀疏数组 当一个数组中的大部分元素为同一值的数组时,可以使用稀疏数组来保存该数组 稀疏数组的处理方式: 记录数组中一个有几行几列,有多少个不同的值,把具有不同值的元素和行列以及值记录在一个小规模的数组 ...
- java全栈系列之JavaSE--JDK的安装以及环境搭建001
java开发环境搭建 JDK下载与安装 配置环境变量 JDK目录介绍 卸载JDK 1.删除java安装目录 2.删除JAVA_HOME,删除path下关于Java的目录,以及环境变量 3.dos窗口查 ...
- java全栈系列之JavaSE-面向对象(继承详解)035
类的继承 java三大特性之一的继承,指的是子类继承父类的属性和方法,java类中只有单继承没有多继承,比如说:一个父亲(父类)可以有多个儿子(子类),但是一个儿子(子类)只能有一个父亲(父类) 在类 ...
最新文章
- 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第5节 final关键字_5_final关键字用于修饰成员变量...
- 微博并发这么牛逼!看他架构如何设计的?
- Java编译型语言还是解释型语言
- 2019春季暑期实习生正式批招聘笔试【腾讯】(回忆版)第二题
- 【C# interface接口】对接口的理解、接口的使用方式(最通俗的解释)
- servlet获取相对路径 绝对路径
- 使用php简单网页抓取和内容分析,使用PHP简单网页抓取和内容分析_php
- go 自定义error怎么判断是否相等_「GCTT 出品」Go 系列教程——30. 错误处理
- 磁盘精灵 4.5 版本
- 大数据基础课02 从萌芽到爆发,大数据经历了哪些发展?
- html 在线播放器,实现简易html视频播放器的方法
- python计算增长率函数_python – 基于增长率优化值的迭代计算
- Gallery3d 学习笔记(6)
- h5应用数据加密_在线视频加密用H5加密方案有哪些优点?
- 软件工程之软件开发和软件测试模型
- David P.Williams论文系列 SAS图像分辨率与目标检测性能的关系
- 记录注册邓白氏编码过程
- PHP学习-数据类型
- SameSite cookie 理解与设置
- Eric靶机渗透测试
热门文章
- 怎么从浩如烟海的书籍论文中找到有用信息?写论文、搞研究必看!
- msf ms17-010利用笔记
- 华为OJ平台题目-砝码重量
- 一念起,天涯咫尺;一念灭,咫尺天涯。—第八天
- python3继承supper_python3中supper和继承顺序
- 攻防世界Web题 - unseping 总结
- 通过Gearman实现MySQL到Redis的数据复制
- Hystrix熔断器的理解
- Generative Adversarial Text to Image Synthesis 论文翻译精校版
- 迎风破局·守正创新,2021未来商业生态链接大会暨第六届金陀螺奖颁奖典礼成功举办!...