一.方法重载的介绍
方法重载是指在同一个类中,方法名相同的方法,但要求形参列表不同!!!
eg:System.out.println();out是PrintStream类型
二.方法重载的好处
(1)减少起名的麻烦
(2)减少记名的麻烦
三.方法重载案例
public class Calculate {
public static void main(String[] args) {
Calculate s = new Calculate();
System.out.println(s.calculate(6,6));
System.out.println(s.calculate(1.1,6));
System.out.println(s.calculate(6,1.1));
System.out.println(s.calculate(1,2,3));
}
int calculate(int x,int y)
{
System.out.println("calculate(int x,int y)已被调用");
return x+y;
}
double calculate(int x,double y)
{
System.out.println("calculate(int x,double y)已被调用");
return x+y;
}
double calculate(double x,int y)
{
System.out.println("calculate(double x,int y)已被调用");
return x+y;
}
int calculate(int x,int y,int z)
{
System.out.println("calculate(int x,int y,int z)已被调用");
return x+y+z;
}
}
运行结果如图所示:
calculate(int x,int y)已被调用
12
calculate(double x,int y)已被调用
7.1
calculate(int x,double y)已被调用
7.1
calculate(int x,int y,int z)已被调用
6
进程已结束,退出代码0
四.方法重载的细节
(1)方法名必须相同
(2)形参列表必须不相同(形参类型,形参个数,两个必须有一个不同,形参名没要求)
(3)返回值类型没要求,即与返回值类型无关!!!
五.可变参数介绍
(1)基本概念:java中可以将同一个类中,同名同功能但参数个数不同的方法,封装成一个方法,就可以通过可变参数实现
(2)基本语法:访问修饰符 返回值类型 方法名(数据类型... 形参名)
(3)可变参数案例:
public class Calculate {
public static void main(String[] args) {
Calculate s = new Calculate();
System.out.println("sum="+s.sum(1,3,5,7,9));
}
public int sum(int ... x)
{
int sum=0;
for(int i=0;i< x.length;i++)
{
sum=sum+x[i];
}
return sum;
}
}
运行结果如图:
sum=25
进程已结束,退出代码0
由此可见同样是实现求和,可变参数要比方法重载方便很多.
六.可变参数细节
(1)可变参数的实参可以为0个或者任意个
(2)可变参数的实参可以为数组
public class Calculate {
public static void main(String[] args) {
Calculate s = new Calculate();
int [] a={1,2,3};
System.out.println("sum="+s.sum(a));
}
public int sum(int ... x)
{
int sum=0;
System.out.println(x.length);
for(int i=0;i< x.length;i++)
{
sum=sum+x[i];
}
return sum;
}
}
运行结果如下:
3
sum=6
进程已结束,退出代码0
可见当可变参数为数组时,其实就是将数组中的所有元素传进去.
(3)可变参数的本质就是数组
上方案例访问可变参数时就是用下标的形式
(4)可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
(5)一个形参列表中只能出现一个可变参数