zoukankan      html  css  js  c++  java
  • Java——方法的重载

    方法的重载就是在同一个类中可以同时存在多个同名的方法,只要这些方法的参数或类型不同。方法重载可以使两个方法的返回值不同,但只有返回值还不足以区分两个方法的重载,还需要通过参数的类型、个数、长度来设定。一个简单地例子

     

    public class OverLoadTest {
    
        public static int add(int a ,int b){
            return a+b;
        }
        public static double add(double a ,double b){
            return a+b;
        }
      public static void main(String[] args) {
            System.out.println("调用add(int,int)方法:"+add(1,2));
            System.out.println("调用add(double,double)方法:"+add(1.1,2.3));
      }
    }

    上面的两个方法的名称都为add,都是要实现两个数相加的结果,但其参数类型一个是int类型,一个是double类型,并且其返回值类型也不同,因此这两个add方法就形成了重载关系。重载的情况可以有很多种,以此例子还可以扩充一下:

     

     1 public class OverLoadTest {
     2 
     3     public static int add(int a ,int b){
     4         return a+b;
     5     }
     6     public static double add(double a ,double b){
     7         return a+b;
     8     }
     9     public static int add(int a){
    10         return a;
    11     }
    12     public static double add(int a,double b){
    13         return a+b;
    14     }
    15     public static int add(double a ,int b){
    16         return 1;
    17     }
    18     public static int add(int...a){
    19         int sum=0;
    20         for(int i=0;i<a.length;i++)
    21             sum=sum+a[i];
    22         return sum;
    23     }
    24     public static void main(String[] args) {
    25         System.out.println("调用add(int,int)方法:"+add(1,2));
    26         System.out.println("调用add(double,double)方法:"+add(1.1,2.3));
    27         System.out.println("调用add(int)方法:"+add(5));
    28         System.out.println("调用add(int)方法:"+add(1.6,2));
    29         System.out.println("调用add(int)方法:"+add(1,2.5));
    30         System.out.println("调用不定长add方法:"+add(6,6,6,6,6,6));
    31     }
    32 
    33 }

    我们可以使用“...”表示不定长的参数,其实就是一个未指定长度的数组,其长度表示a.length,给它一个int型变量,对于这种情况,我们要使用循环语句,返回其和值。基于前面的知识,我们在做这个案例的时候,还需注意数据类型转换的问题,低级类型向高级类型转换,系统会自动执行,但如果高级类型向低级类型转换,需使用强制类型转换,若12行第四个add方法,我们给它的类型为int,系统就会报错,方法中最大类型为double。

     

  • 相关阅读:
    rocketmq学习(一) rocketmq介绍与安装
    基于redis的分布式锁实现
    SSTI(服务器模板注入)学习
    PHP文件包含漏洞(利用phpinfo)复现
    ubuntu搭建vulhub漏洞环境
    sqli-labs通关教程----51~65关
    sqli-labs通关教程----41~50关
    sqli-labs通关教程----31~40关
    sqli-labs通关教程----21~30关
    sqli-labs通关教程----11~20关
  • 原文地址:https://www.cnblogs.com/charmingyj/p/3775620.html
Copyright © 2011-2022 走看看