文章目录
- [1. 可变个数的形参的理解](#1. 可变个数的形参的理解)
- [2. 从代码上理解](#2. 从代码上理解)
-
- [2.1. 用数组的方式来传递可变个数的参数](#2.1. 用数组的方式来传递可变个数的参数)
- [2.2. 用java特有的... 的方式来传递可变个数的参数,这种参数在使用时与数组的使用方式相同](#2.2. 用java特有的... 的方式来传递可变个数的参数,这种参数在使用时与数组的使用方式相同)
1. 可变个数的形参的理解
java
// 下面采用 数组形参 来定义方法
public static void test(int a ,String[] books);
// 以 可变个数形参 来定义方法
public static void test(int a ,String...books);
说明:
- 可变参数:方法参数部分指定类型的参数个数是可变多个
- 声明方式:
方法名(参数的类型名... 参数名)
- 可变参数方法的使用与方法参数部分使用数组是一致的
- 方法的参数部分有可变形参,需要放在形参声明的最后
2. 从代码上理解
2.1. 用数组的方式来传递可变个数的参数
创建一个Person3类
Person3.java
java
package default_package;
public class Person3 {
/**
* 用数组的方式来传递可变个数的参数
* 如果没有参数,就要定义一个空数组或者是null
* @param args
*/
public void printInfo(String[] args) { //问题:能够打印的信息都有来源于方法的参数也就是形参的传递
//我现在可能给方法要传递的不同的参数?如果在这种情况下,我们不知道想要给方法传递多少个参数(姓名、性别、年龄;也可能身份证号码、家庭住址、手机号)
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
编写调用代码Test5.java
java
package default_package;
public class Test5 {
public static void main(String[] args) {
Person3 p3 = new Person3();
String[] ss = new String[] {"zhangsan", "11"};
p3.printInfo(ss);
String[] ss1 = new String[] {"江苏省***", "13611112222","320323202310116666"};
p3.printInfo(ss1);
}
}
运行Test5.java,结果如下:
2.2. 用java特有的... 的方式来传递可变个数的参数,这种参数在使用时与数组的使用方式相同
创建一个Person3类
Person3.java
java
package default_package;
public class Person3 {
/**
* 用java特有的...的方式来传递可变个数的参数,这种参数在使用时与数组的使用方式相同
* 如果没有参数就可以不填.
* 这种...代表可以传递0到多个参数
* 如果一个方法有多个的形参,可变的形参(...这种的参数)一定要放在所有的参数最后
* printInfo1(String s,int d,String... args)这样的放置参数的方式是对的
* printInfo1(String s,String... args,int d)这样的放置参数的方式是不对的
* printInfo1(String... args,String s,int d)这样的放置参数的方式是不对的
* @param args
*/
public void printInfo1(String... args) {
for(int i = 0; i< args.length; i++) {
System.out.println(args[i]);
}
}
}
编写调用代码Test5.java
java
package default_package;
public class Test5 {
public static void main(String[] args) {
Person3 p3 = new Person3();
p3.printInfo1("lisi", "男", "","");
String[] ss2 = new String[] {"江苏省***", "13611112222", "320323202310116666"};
p3.printInfo(ss2);
}
}
运行Test5.java,结果如下: