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类中只有单继承没有多继承,比如说:一个父亲(父类)可以有多个儿子(子类),但是一个儿子(子类)只能有一个父亲(父类) 在类 ...
最新文章
- __name__ ==“ __main__”怎么办?
- Cocoapods 第三方类库管理工具
- [导入]伍迷创意随想集 之 聚众广告创精品
- django html文本编辑器,django xadmin 集成DjangoUeditor富文本编辑器
- javaWEB开发中get方式请求的乱码问题解决
- System.Threading.Timer使用心得
- mac 安装cmake
- element vue 纵向滑动条_Vue 部分
- 养成一个习惯有多难?不如先从一个小目标开始
- jenkins构建记录日志_构建企业日志记录层的清单
- click事件在什么时候出发_什么是移动端?
- 一个小型的中文文本分类系统(项目链接文末)——《ML算法原理和实践》学习笔记
- c语言全局变量(c语言全局变量怎么定义)
- 32767+1=-32768 补码
- Android 11 功能和 API 概览
- 安全网关设备有哪些 安全网关产品介绍
- UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props
- 入行大数据,需要学习哪些编程语言?
- 30岁女IT月薪3W的背后:从数据报表到数仓、中台,这工具帮了大忙
- iOS 轻松使用 App 数据统计
热门文章
- 浅议信息系统控制在企业中的应用(lunwen+开题报告)
- tensorflow学习笔记
- 大学计算机基础学生实验报告经验总结,安卓作业实验报告心得体会
- 水仙花数(c语言程序实现)
- 用淘汰的手机做家庭监控
- html手机页面弹幕效果,H5移动端弹幕动画实现
- 2019年终职场盘点:如何用5级管理法,经营好自己最重要的资产?
- user_agreement
- 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)
- [BZOJ1067][SCOI2007]降雨量(线段树)