一、基本概念
一个类中多个同名同功能但参数个数不同的方法,封装成一个方法
二、基本语法
访问修饰符 返回类型 方法名(数据类型...形参名){
}
三、快速入门案例
package chapter07;
public class VarParameter01 {
public static void main(String[] args) {
HspMethod hspMethod = new HspMethod();
hspMethod.sum(1,3,5);
System.out.println(hspMethod.sum(1,3,5));
}
}
class HspMethod{
//计算2个数的和,3个数的和,4个数的和
//可以封装成一个方法
//几个方法名称同功能同参数个数不同=>使用可变参数优化
//1.int...表示可以接受0到多个int
//2. 使用可变参数时,nums可以当作数组来使用
//3.遍历nums求和即可
public int sum (int... nums){
System.out.println("接收的参数个数 = " + nums.length);
int sum = 0;
for (int i = 0; i < nums.length; i++) {
sum += nums[i];
}
return sum;
}
}
四、注意事项和使用细节
package chapter07;
public class VarParameterDetail {
public static void main(String[] args) {
//细节:可变参数的实参可以为数组
int[] arr = {1, 2, 3};
T t1 = new T();
t1.f1(arr);
}
}
class T{
public void f1(int... nums){
System.out.println("长度=" + nums.length);
}
//细节:可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
// public void f2(double... nums, String str){
//
// }错误
public void f2(String str, double... nums ){
}
//细节:一个形参列表中只能出现一个可变参数
// public void f2(int... nums1, double... nums ){
//
// }错误
}
五、练习
VarParameterExercise.java
有三个方法,分别实现返回姓名和两门成绩,返回姓名和三门成绩,返回姓名和五门成绩
package chapter07;
public class VarParameterExercise {
public static void main(String[] args) {
tools1 tools = new tools1();
System.out.println(tools.Sumscore("小明",7,12,56));
}
}
/*
1.参数返回类型int,参数名Sumscore,参数列表(String name,int... nums)
*/
class tools1{
public String Sumscore (String name, double... nums){
double sums = 0;
for (int i = 0; i < nums.length; i++) {
sums += nums[i];
}
return name + "有" + nums.length + "门课的成绩总分为=" + sums;
//此处是一个字符串拼接
}
}