ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

方法重载(OverLoad)

2022-04-17 13:33:54  阅读:201  来源: 互联网

标签:int double OverLoad 重载 n1 n2 方法 public


方法重载(OverLoad)

基本介绍

java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致! 比如:System.out.printIn(100) out是PrintStream类型

假如没有方法重载的话, 就会出现printchar printint的打印方式 ,根据类型进行都要打印

重载的好处

1)减轻了起名的麻烦 2)减轻了记名的麻烦

 

方法重载快速入门

OverLoad01.java

案例:类:MyCalculator方法:calculate

calculate(int n1,int n2)  //两个整数的和
calculate(int n1,double n2) //一个整数和一个double的和
calculate(double n2,int n1) //一个double和一个int的和
calculate(int n1,int n2,int n3) //三个int的和

代码示例 :

public class OverLoad01 {
  public static void main(String[] args) {
      MyCalculator mc = new MyCalculator();
      System.out.println(mc.calculate(1,2));
  }


}


class MyCalculator{

  //下面的四个方法构成了重载
  //两个整数的和
  public int calculate(int n1,int n2){
      return n1 + n2;
  }
  //一个整数和一个double的和
  public double calculate(int n1,double n2){
      return n1 + n2;
  }
  //一个double和一个int的和
  public double calculate(double n1,int n2){
      return n2 + n1;
  }
  //三个int的和
  public int calculate(int n1,int n2,int n3){
      return n1 + n2 + n3;
  }


}

这里我们可以看到 ,编写了总共有4个一样名字的方法

我们将方法实例化之后 ,调用类方法的时候 ,就会自动匹配我们传参的值 ,假如为两个int类型的数值 ,那么就会默认调用第一个类方法从而求得类的和

同样的 ,假设传入的参数第一个是int 第二个是double就使用第二个方法 ,反之就是第三个方法

 

注意事项

1)方法名:必须相同 2)参数列表:必须不同(参数类型或个数或顺序,至少有一样不同,参数名无要求) 3)返回类型:无要求

 

来试着判断一下

判断题:

void show(int a,char b,double c)构成重载的有:b ,c ,d ,e

a) void show(int x,char y,double z)
//a不构成重载,因为类型的位置都是一致的,只是变量名不同
b) int show(int a,double c,char b){}
//方法不同因此可以构成
c) void show(int a,double c,char b){}
//可以构成
d) boolean show(int c,char b){}
//形参个数不一致,但仍然构成
e) void show(double c){}
//方法名一致,构成
f) double show(int x,char y,double z){}
//类型一致因此不构成方法重载
g) void shows(){}
//方法名不同,不构成方法重载

 

 

方法重载代码示例

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

2.在Methods类,定义三个重载方法maxO,第一个方法,返回两个int值中的最大值,第二个方法,返回两个double值中的最大值,第三个方法,返回三个double值中的最大值,并分别调用三个方法。

public class OverLoadExercise {
  public static void main(String[] args) {

      Methods t1 = new Methods();
      t1.m(2);
      t1.m(2,3);
      t1.m('x');

      System.out.println(t1.max(2, 4));
      System.out.println(t1.max(3.3, 2.5));
      System.out.println(t1.max(6, 4, 3));

  }
}

class Methods {
  public void m(int n) {
      System.out.println("平方为:" + (n * n));
  }

  public void m(int a, int b) {
      System.out.println("相乘结果为:" + (a * b));
  }

  public void m(char c) {
      System.out.println(c);
  }

  public int max(int n, int m) {
      return n > m ? n : m;
      //这里借助三元运算符

  }

  public double max(double n, double m) {
      return n > m ? n : m;

  }

  public double max(double n, double m, double x) {

      double max1 = n > m ? n : m;
      return max1 > x ? max1 : x;
      //这里仍然借助了三元运算符,不过添加了一个中间变量也就是max1


  }
}

标签:int,double,OverLoad,重载,n1,n2,方法,public
来源: https://www.cnblogs.com/comiblogs/p/16155538.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有