一、方法重载的基本使用
方法重载:在同一个类中,出现了方法名相同,但是参数列表不同的方法,叫方法重载。
*****参数个数、参数类型、参数顺序
好处:方法名相同,JVM会根据传递的不同参数,来自动找对应的方法调用。
public static void main(String[] args) {
//调用两个int类型整数和的方法
int s1 = getSum(10, 20);
System.out.println("s1:"+s1);
//调用三个int类型整数和的方法
int s2 = getSum(10, 20, 30);
System.out.println("s2:"+s2);
//调用两个double类型小数和的方法
double s3 = getSum(8.8, 6.6);
System.out.println("s3:"+s3);
// 顺序 调用先int后double两个数求和的方法
double s4 = getSum(10, 5.5);
System.out.println("s4:"+s4);
//调用先double后int两个数求和的方法
double s5 = getSum(88.8, 100);
System.out.println("s5:"+s5);
//调用int数组中元素求和的方法
int[] arr = {1,2,3,4,5};
int s6 = getSum(arr);
System.out.println("s6:"+s6);
}
方法重载的注意事项
1.方法的重载,只和参数类型有关,和方法的返回值类型没有关系
2.方法的重载,之和参数类型有关,和方法参数的名字无关。
3.JVM (java虚拟机)会根据方法传递的参数不同,而调用不同的方法。
二、基本类型参数和引用类型参数
1.基本类型参数执行原理:值传递
2.引用类型参数执行原理:地址传递
三、熟练使用 数组与方法综合练习
案例1.定义方法,可以求出一个数组中偶数的和并返回。
/*
定义方法,可以求出一个数组中偶数的和并返回
需求:
有以下数组,存储了公司5名员工的年龄:
{29, 35, 38, 56, 21}
请定义方法getSum()可以求出这个数组的“所有偶数的年龄的和”并返回。
分析:
1.定义一个main方法
2.在main方法中定义包含以下元素的数组{29, 35, 38, 56, 21}
3.定义一个方法,名称叫getSum,获取数组中所有偶数的和并返回
三要素:
方法名:getSum
参数列表:int[] arr
返回值类型:int
a.定义一个int类型的变量sum,初始值为0,记录累加求和
b.遍历数组,获取数组中每一个元素
c.判断元素是否为偶数 if(arr[i]%2==0){ }
d.是否是则累加求和
e.循环结束,把和返回
4.在main方法中,调用getSum方法,获取方法的返回值
5.打印结果
*/
public class Demo01Test {
//1.定义一个main方法
public static void main(String[] args) {
//2.在main方法中定义包含以下元素的数组{29, 35, 38, 56, 21}
int[] arr = {29, 35, 38, 56, 21};
//4.在main方法中,调用getSum方法,获取方法的返回值
int sum = getSum(arr);
//5.打印结果
System.out.println(sum);
}
/*
3.定义一个方法,名称叫getSum,获取数组中所有偶数的和并返回
三要素:
方法名:getSum
参数列表:int[] arr
返回值类型:int
*/
public static int getSum(int[] arr){
//a.定义一个int类型的变量sum,初始值为0,记录累加求和
int sum = 0;
//b.遍历数组,获取数组中每一个元素
for (int i = 0; i < arr.length; i++) {
//c.判断元素是否为偶数 if(arr[i]%2==0){ }
if(arr[i]%2==0){
//d.是否是则累加求和
sum+=arr[i];
}
}
//e.循环结束,把和返回
return sum;
}
}
案例2.求数组中数字不包含7的,并且是偶数的数字累加和
/*
求数组中数字不包含7的,并且是偶数的数字的累加和
需求:
1.请定义方法,可以求出一个整数数组中“不包含7的并且是偶数”的元素的累加和,并返回结果。
2.定义main()方法,定义一个10个长度的数组,并从控制台接收10个两位的整数填充数组,
调用这个方法,接收返回值并打印:
分析:
1.定义一个main方法
2.在main方法,定义int类型,包含以下元素的数组
int[] arr = {31,42,23,74,25,36,77,88,99,10};
3.请定义方法,可以求出一个整数数组中“不包含7的并且是偶数”的元素的累加和,并返回结果
三要素:
方法名:getSum
参数列表:int[] arr
返回值类型:int
a.定义一个int类型的变量sum,初始值为0,记录累加求和
b.遍历数组,获取每一个元素
c.判断元素 “不包含7的并且是偶数” ( arr[i]%10!=7 && arr[i]/10%10!=7 && arr[i]%2==0)
74
获取元素的个位: 74%10=4
获取元素的十位: 74/10%10=7%10=7
876
获取元素的百位: 976/100%10=9%10=9
获取元素的千位: arr[i]/1000%10=9%10
...
d.条件成立,累加求和
e.循环结束,把和返回
4.在main方法中,调用getSum方法,获取和
5.打印结果
*/
public class Demo02Test {
//1.定义一个main方法
public static void main(String[] args) {
//2.在main方法,定义int类型,包含以下元素的数组
int[] arr = {31,42,23,74,25,36,77,88,99,10};
//4.在main方法中,调用getSum方法,获取和
int sum = getSum(arr);
//5.打印结果
System.out.println("sum:"+sum);
}
/*
3.请定义方法,可以求出一个整数数组中“不包含7的并且是偶数”的元素的累加和,并返回结果
三要素:
方法名:getSum
参数列表:int[] arr
返回值类型:int
*/
public static int getSum(int[] arr){
//a.定义一个int类型的变量sum,初始值为0,记录累加求和
int sum = 0;
//b.遍历数组,获取每一个元素
for (int i = 0; i < arr.length; i++) {
//c.判断元素 “不包含7的并且是偶数” ( arr[i]%10!=7 && arr[i]/10%10!=7 && arr[i]%2==0)
if(arr[i]%10!=7 && arr[i]/10%10!=7 && arr[i]%2==0){
//d.条件成立,累加求和
System.out.println(arr[i]);
sum+=arr[i];
}
}
//e.循环结束,把和返回
return sum;
}
}