Java中的方法重载
来源:互联网 发布:windows的历史 编辑:程序博客网 时间:2024/05/17 04:25
在 同一个类 中,允许存在多个同名方法,只要它们的参数个数或者参数类型不同即可,这就叫方法重载。
格式为:修饰符 返回值类型 方法名(参数类型1 变量名称1,参数类型2 变量名称2,……….)
为什么要用方法重载呢?(以成员方法为例进行说明)
//定义一个求两个int类型数值之和的方法:public int sumInt(int a,int b){};//定义一个求两个double类型数值之和的方法:public double sumDouble(double a,double b){};//定义一个求三个int类型数值之和的方法:public int sumIntThree(int a,int b,int c){};
上面定义方法的格式完成正确,但是从代码易读性及简洁性的角度考虑,都是求和用sum来统一命名不是更合理吗?调用方法的时候虽然方法名相同,但是参数类型或参数个数不同,虚拟机仍然可以识别不同的方法,完全不影响程序的正常运行。
所以,相同功能下的代码我们这么写:
public int sum(int a,int b){};public double sum(double a,double b){};public int sum(int a,int b,int c){};
判断是否为方法重载需注意三点:
1、方法重载与返回值类型无关
//定义一个无返回值类型的求和方法public void sum(int a, int b){System.out.println(a+b);}//定义一个返回值为int类型的求和方法public int sum(int a,int b){int sum = a+b;return sum;}
一个无返回值,一个返回值类型为int,但是对于虚拟机来说两个方法是同一个方法,因为方法调用时是通过类名调用,即sum(a,b),此时就无法判断到底调用的是void类型的sum方法,还是返回值为int类型的方法,此时会出现编译报错。
2、参数类型比较需一一对应,顺序不同即是参数类型不同
public static void sum(int a,double b){};public static void sum(double a,int b){};
第一个方法先传入一个int类型的数值,再传入一个double类型的数值;第二个方法正好相反,所以这两个方法属于参数类型不同,为方法重载。
3、变量名称与方法重载无关
public int sum(int a,int b){};public int sum(int x,int y){};
变量名称a,b,x,y可以为任意符合Java代码规则的标识符,所以以上代码在Java语法规则上是完全相同的两段代码,故不是方法重载。
总结: 我们在判断是否为方法重载时,第一看方法名称,相同再看参数类型和参数个数。
阅读全文
1 0
- java中的方法重载
- java中的方法重载
- java中的重载方法
- java中的重载方法
- Java中的方法重载
- java重载-方法重载中的准确性原则
- java重载-方法重载中的准确性原则
- java中的方法重载 overload
- Java中的方法重载应用
- Java中的方法重写和方法重载
- Java 中的方法重载与方法覆盖
- Java中的方法以及方法重载
- Java中的重载方法与重写
- Java中的方法的重写与重载
- Java中的方法重载与重写
- java中的方法重写和重载10
- JAVA中的数据类型和方法重载
- Java中的重载方法之匹配优先级
- jxl导出数据到excel表格
- CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置
- Codeforces Round #448 (Div. 2) 895B. XK Segments
- tensorflow各版本间的区别错误
- JDBC往MySql数据库中写汉字出现乱码的问题
- Java中的方法重载
- 在OpenCV下利用霍夫变换进行直线检测和圆检测
- Visual Studio 2017 15.5 正式发布,性能再提升
- 【Scikit-Learn 中文文档】预测目标 (y) 的转换
- 使用POI同时对Excel文件进行读和写操作时避免Invalid header signatu
- Lintcode:旋转字符串
- REDIS系列之五大对象原理
- Eclipse隐藏引用的jar包
- Hibernate注解使用入门