Java方法的重载
2021/7/2 9:21:21
本文主要是介绍Java方法的重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java方法的重载
重载就是在一个类中,有相同的函数(方法)名称,但形参不同的函数(方法)。
方法的重载的规则:
- 方法名必须相同
- 参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。
- 方法的返回类型可以相同也可以不同
- 仅仅返回类型不同不足以成为方法的重载
实现理论:
- 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
重载的意义:
- 是为了方便外界对方法进行调用,什么样的参数程序都可以找到对应的方法来执行,体现的是程序的灵活性
如下代码块,max方法比较大小只能是两个lnt类型相比较,那么我们如何让max方法可以比较两个double类型的数,甚至比较一个int类型的数,和一个double类型的数呢?这里就需要使用方法的重载。
package cn.test; /* * 本类用于测试重载01 */ public class TestHeavyLoad { public static void main(String[] args) { int max = max(15,35); System.out.println(max);//35 } //两个int类型相比较 public static int max(int a,int b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } }
实现效果如下(两个数,不同类型):
package cn.test; /* * 本类用于测试重载02 */ public class TestHeavyLoad { public static void main(String[] args) { // int max = max(15,35);//35 // double max = max(15.5,35.5);//35.5 // double max = max(35,15.5);//35.0 double max = max(35.8,15);//35.8 System.out.println(max); } //两个int类型相比较 public static int max(int a,int b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } //两个double类型相比较 public static double max(double a,double b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } //第一个为int类型,第二个为double类型 public static double max(int a,double b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } //第一个数为double类型,第二个数为int类型 public static double max(double a,int b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } }
那么我想利用max方法实现三个数的比较,取最大值呢?实现效果如下:
package cn.test; /* * 本类用于测试重载03 */ public class TestHeavyLoad { public static void main(String[] args) { // int max = max(15,35);//35 int max = max(35,66,18);//66 System.out.println(max); } //两个int类型相比较 public static int max(int a,int b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } //比较三个数,取最大值 public static int max(int a,int b,int c) { //定义一个result变量来接受最大值,局部变量要声明初始值。 int result = 0; result = a; if(result == b) { if(result == c) { System.out.println("三个数都相等!"); return 0; }else if(result > c) { return result; }else { return c; } }else if(result > b) { if(result > c) { return result; }else { return c; } }else { if(b > c) { return b; }else { return c; } } } }
还有呢,就是我想用int类型来接受两个double类型的数相比较呢?实现效果如下:
package cn.test; /* * 本类用于测试重载04 */ public class TestHeavyLoad { public static void main(String[] args) { // int max = max(15,35);//35 int max = max(18.6,32.3);//32 System.out.println(max); } //两个int类型相比较 public static int max(int a,int b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return a; }else { return b; } } //两个double类型相比较,返回值为int类型 public static int max(double a,double b) { if(a == b) { System.out.println("两值相等"); return 0; }else if(a > b) { return (int)a; }else { return (int)b; } } }
差不多就这些了,还有其他的一些想法啊,规范啊后面再更新补充。
这篇关于Java方法的重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南