zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    2050编程赛 冰水挑战 HDU 6495
    Codeforces Round #565 (Div. 3) F.Destroy it!
    ADO 查询
    Default parameters (Function) – JavaScript 中文开发手册
    Errors: Deprecated expression closures (Errors) – JavaScript 中文开发手册
    JavaScript RegExp 对象
    在Java中为静态最终变量赋值
    FE_INVALID (Numerics) – C 中文开发手册
    getter-return (Rules) – Eslint 中文开发手册
    no-irregular-whitespace (Rules) – Eslint 中文开发手册
  • 原文地址:https://www.cnblogs.com/studycode/p/9533446.html
Copyright © 2011-2022 走看看