当前位置: 首页 > news >正文

Java基础28(方法重载)

方法重载

在java中,允许同一个类中存在多个同名方法,但要求它们的形参列表不一致。

重载的好处
1.减轻起名麻烦
2.减轻记名麻烦

入门案例:

规定一个类:MyCalculator,方法:calculate
要求使用同样的方法名实现以下功能:
calculate(int n1,int n2),求两个整数的和
calculate(int n1,double n2),求一个整数,一个double的和
calculate(double n1,int n2),求一个double,一个int的和
calculate(int n1,int n2,int n3),求三个整数的和

代码实现

public static void main(){
   MyCalculator mc = new MyCalculator();
   System.out.println(mc.calculate(1,2));
   System.out.println(mc.calculate(1.1,2));
}

class MyCalculator{
   //两个整数的和
   public int calculate(int n1,int n2){
       System.out.println("两个int的和");
       return n1 + n2;
   }
   //一个整数,一个double的和 
   public double calculate(int n1,double n2){
   	   System.out.println("一个int,一个double的和");
       return n1 + n2;
   }
   //一个double,一个整数的和
   public double calculate(double n1,int n2){
       System.out.println("一个double,个int的和");
       return n1 + n2;
   }
   //三个整数的和
   public int calculate(int n1,int n2,int n3){
       System.out.println("三个int的和");
       return n1 + n2 + n3;
   }
}

Console:
两个int的和
3
一个double,int的和
3.1

总结:
从上面的例子可以看出,重载的方法中形参列表是不同的,而当调用方法时,输入什么类型的实参,就会调用相应的方法,而不是反复调用同一个方法。

方法重载的注意事项

1.方法名必须相同。
2.形参列表必须不同(形参类型或个数或顺序,至少有一项不同,形参名不做规定)

方法重载练习题:

  1. 编写程序,类Methods中定义三个重载方法并调用。方法名为m。并在主类的main方法中分别用参数区别调用三个方法。
    第一个方法:接收一个int参数,执行平方运算并输出结果;
    第二个方法:接收两个int参数,相乘并输出结果;
    第三个方法:接收一个字符串参数,输出字符串信息。

代码实现

pulic class OverLoadExercise{
   public static void main(String[] args){
      Methods method = new Methods();
      method.m(10);//平方
      method.m(10,20);//相乘
      method.m("hello");//输出字符串
   }
}

class Methods{
   public void m(int n){
       System.out.println("平方=" + (n * n));
   }
   public void m(int n1,int n2){
       System.out.println("相乘=" + (n1 * n2));
   }
   public void m(String str){
       System.out.println("传入的str=" + str);
   }
}

Console:
平方=100
相乘=200
传入的str=hello
  1. 在Methods类中,定义三个重载方法max(),并分别调用三个方法。
    第一个方法:返回两个int值中的最大值;
    第二个方法:返回两个double值中的最大值;
    第三个方法:返回三个double值中的最大值;

代码实现

pulic class OverLoadExercise{
   public static void main(String[] args){
      Methods method = new Methods();
      System.out.println(method.max(10,24));
      System.out.println(method.max(10.0,21.4));
      System.out.println(method.max(10.0,1.2,24));
   }
}

class Methods{
    public int max(int n1,int n2){
       return n1 > n2 ? n1 : n2;
    }
    public double max(double n1,double n2){
       return n1 > n2 ? n1 : n2;
    }
    public double max(double m1, double n2, double n3){
       double max1 = n1 > n2 ? n1 : n2;
       return max1 > n3 ? max1 : n3;
    }
}

Console:
24
21.4
24.0

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机网络(自顶向下方法)-传输层
  • H5画布绘制渐变
  • 使用cpolar内网穿透远程操作Excel
  • springboot海纳部门人事管理系统毕业设计源码
  • 史上最全跨域总结
  • 【React HooksRedux--学习小结】
  • 金融数据分析(一)
  • 《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第5章 实时技术
  • uni-app调用Native.jsAPI实现对Android原生日历的增删查操作
  • 关于 promise 的理解(一 )
  • vuex笔记
  • m3u8是什么?
  • 第十九章 维护本地数据库(四)
  • 如何提高安全关键领域的软件开发质量
  • Learning Transferable Features with Deep Adaptation Networks
  • [LeetCode] Wiggle Sort
  • 2019年如何成为全栈工程师?
  • css属性的继承、初识值、计算值、当前值、应用值
  • JS函数式编程 数组部分风格 ES6版
  • Spring框架之我见(三)——IOC、AOP
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 翻译--Thinking in React
  • 给github项目添加CI badge
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 一份游戏开发学习路线
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​2020 年大前端技术趋势解读
  • # Redis 入门到精通(七)-- redis 删除策略
  • ###项目技术发展史
  • #、%和$符号在OGNL表达式中经常出现
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (libusb) usb口自动刷新
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)原生js案例之数码时钟计时
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (回溯) LeetCode 46. 全排列
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)JPA - JQPL 实现增删改查
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET企业级应用架构设计系列之开场白
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [ 蓝桥杯Web真题 ]-布局切换
  • [Android]创建TabBar
  • [BFS广搜]迷阵