10.5 方法的重载

1、概述

  方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要这些方法的参数个数或类型不同即可。
  注意:虽然在方法重载中可以使用连个方法的返回类型不同,但只有返回类型不同并不足以区分两个方法的重载,还需要通过参数的个数以及参数的类型来设置。

例子10.9

 1 public class OverLoandTest {
 2     public static int add(int a, int b) {
 3         return a + b;
 4     }
 5     
 6     //定义与第一个方法相同名称、参数类型不同的方法
 7     public static double add(double a, double b) {
 8         return a + b;
 9     }
10     
11     //定义与第一个方法参数个数不同的方法
12     public static int add(int a) {
13         return a;
14     }
15     
16     //定义一个成员方法
17     public static int add(int a, double b) {
18         return 1;
19     }
20     
21     //这个方法与前一个方法参数次序不同
22     public static int add(double a, int b) {
23         return 1;
24     }
25     
26     //主方法
27     public static void main(String[] args) {
28         System.out.println("调用add(int,int)方法:" + add(1,2));
29         System.out.println("调用add(double,double)方法:" + add(2.1,3.3));
30         System.out.println("调用add(int)方法:" + add(1));
31     }
32 }
View Code

2、在谈到参数个数可以确定两个方法是否具有重载关系时,会想到定义不定长参数方法。
  返回值 方法名(参数数据类型...参数名称)
  备注:在参数列表中使用“...”形式定义不定长参数,其实这个不定长参数a就是一个数组,编译器会将(int...a)这种形式看做是(int[] a),所以在add()方法体做累加操作时使用到了for循环语句,在循环中是根据数组a的长度做循环条件的,最后将累加结果返回。

例子10.10

 1 public class OverLoadTest2 {
 2     public static int add(int a, int b) {
 3         return a + b;
 4     }
 5     
 6     //不定长参数形式的重载
 7     public static int add(int...a) {
 8         int s = 0;
 9         for(int i=0;i<a.length;i++) {        //根据参数个数做循环操作
10             s += a[i];        //将每个参数累加
11         }
12         return s;        //将计算结果返回
13     }
14     
15     //主方法
16     public static void main(String args) {
17         System.out.println("调用add(int,int)参数方法:" + add(3,4));
18         
19         //调用不定长参数方法
20         System.out.println("调用不定长参数方法:" + add(1,2,3,4,5,6,7,8,9));
21     }
22 }
View Code

 

原文地址:https://www.cnblogs.com/studycode/p/9533446.html