java方法的重载!

打印 上一主题 下一主题

主题 922|帖子 922|积分 2766

java方法的重载

Java 允许同一个类中定义多个同名方法,只要它们的形参列表不同即可。如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)。
方法重载的规则:


  • 方法名必须相同
  • 参数列表必须不同(参数列表的个数不同,或者类型不同,或者参数列表的排列顺序不同)
  • 方法的返回类型可以相同也可以不相同
  • 仅仅返回类型不同不足以够成方法的重载
代码示例:(定义比大小的方法)
  1. public class Demo02 {
  2.     public static void main(String[] args) {
  3.         int max=max(5,5,5);
  4.         System.out.println(max);
  5.     }
  6.     //定义一个比大小的方法,参数为(int a,int b)
  7.     public static int max(int a,int b){
  8.         int result = 0;
  9.         if (a>b){
  10.             result=a;
  11.         }else if (a==b){
  12.             System.out.println("a和b是相等的");
  13.             return 0;//终止方法
  14.         }else {
  15.             result=b;
  16.         }
  17.         return result;
  18.     }
  19.     //方法名相同,参数相同,但是参数类型不同
  20.     public static int max(double a,double b){
  21.         int result = 0;
  22.         if (a>b){
  23.             result=(int)a;
  24.         }else if (a==b){
  25.             System.out.println("a和b是相等的");
  26.             return 0;//终止方法
  27.         }else {
  28.             result=(int)b;
  29.         }
  30.         return result;
  31.     }
  32.     //可以看到方法名相同,但是参数却有三个
  33.      public static int max(int a, int b,int c) {
  34.         int result = 0;
  35.         if (a>=b&&a>=c) {
  36.             result = a;
  37.         } else if (b>=a&&b>=c) {
  38.             result=b;
  39.         } else {
  40.             result = c;
  41.         }
  42.         return result;
  43.     }
  44. }
复制代码
输出:我们执行三个参数的方法,看一下效果
  1. 5
复制代码
编译、运行上面程序完全正常,虽然 3 个 max() 方法的方法名相同,但因为它们的形参列表不同,所以系统可以正常区分出这 3 个方法。当运行时,Java 虚拟机会根据传递过来的不同参数来调用不同的方法。

  • 上述说了靠返回值类型不足以区分方法的重载(了解)
    因为对于java而言,当方法名称相同的时候、,编译器会根据调用方法的参数个数,参数类型去进行逐个匹配。选择对应的方法,如果匹配失败,则编译器报错!
    有的时候我们不注意方法的返回值,想要的是方法调用的其他效果(这常被称为“为了副作用而调用”),这时可能会调用方法而忽略其返回值。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表