Java(1):方法重载(1)
来源:互联网 发布:苏小红c语言第三版pdf 编辑:程序博客网 时间:2024/06/06 03:36
日期:2017/10/10
Java学习不含糊(1)
一、方法的重载
狠抓了一个国庆黄金周,java基础中的基础(数据结构--数组,类型--primitive数据,类的属性--class,成员变量,方法调用和传递参数;结构化--if..else../while.../for.../swith....case...default...break...)已经打牢。之前有python的经验,给一分钟装逼的话,确实对“语言是一个工具”这句话有点独特见解,但碍于造诣不深,还是继续埋头苦干,不吹哔哔。
1. 方法的重载:
1.1 在Github下了一个教程版的java代码,里面的定义如下(精辟!):
在同一个类中,方法名相同,参数列表不同的方法。参数列表不同:个数不同,数据类型不同与返回值类型无关。
那不就乱套了吗!?函数名都能一样,,在C语言要被打死的。C++/Java 支持函数重载而C语言不支持函数重载。(为啥?参考博文:http://blog.csdn.net/FX677588/article/details/70207794;)
方法重载代码如下:
package com.object;/* * 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试 * *//* * 方法重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。和返回值类型无关。 * */public class MethodRestructure {public static void main(String[] args){//testbyte a = 10;byte b = 10;short a1 = 233;short b1 = 766;System.out.println(compare(a1,b1)+" 0");System.out.println(compare(a,b)+" 1");System.out.println(compare(10,10)+" 2");}//bytepublic static boolean compare(byte a,byte b){System.out.print("byte ");return a == b;}//shortpublic static boolean compare(short a,short b){System.out.print("short ");return a == b;}//intpublic static boolean compare(int a,int b) {System.out.print("int ");return a == b;}//longpublic static boolean compare (long a,long b){System.out.print("long ");return a == b;}}
1.2 其实恰恰相反,方法的重载大大促进了代码的复用和适用场景。当然也有很多的误区,比如造成方法重载的条件看起来就比较复杂了,有大牛总结的很好了(
http://blog.csdn.net/shippingxing/article/details/47042627 ,感谢助攻)。
1.2.1 对于两个方法,如果只有返回值不同,那么不构成重载,程序会报错。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1.2.2 对于两个方法,如果只有访问修饰符不同,那么不构成重载,程序会报错。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
1.2.3 对于两个方法,如果只是参数命名不同,那么不构成重载,程序会报错。
1.3 方法重载的同时,同名方法也是可以互相调用的!见下面的代码:
package com.object;public class MethodRestructureSum {public static void main(String[] args){//需求:请写一个功能,实现两个数据的求和System.out.println(sum(10,20));//需求:请写一个功能,实现三个数据的求和//System.out.println(sum2(10,20,30));System.out.println(sum(10,20,30));System.out.println(sum(1.5,2.5));System.out.println(sumNest(10,20,30));}public static int sum(int a,int b){System.out.print("Int Result : "+a +"+"+b+" = ");return a+b;}public static int sum(int a,int b,int c){System.out.print("Int Result : "+a +"+"+b+"+"+c+ "= ");return a+b+c;}public static double sum(double a,double b){System.out.print("Double Result : "+a +"+"+b+ "= ");return a+b;}public static int sumNest(int a,int b,int c){System.out.print("Int Nest Result : "+a +"+"+b+"+"+c+ "= ");int result = sum((a + b),c);return result;}}Java的方法重载还有很多的运用,待续。。
END.
- Java(1):方法重载(1)
- 39 java 方法重载 (1)
- Java学习笔记(1):重载方法
- Java---方法重载1
- Java入门学习(1) 方法的重载
- Java方法的重载1
- Java方法的重载(overload)
- java-就近原则(方法重载中)
- 1-2 java基础:方法、方法重载、数组
- Java基础之(十三)递归方法和方法重载
- java讲义(四)方法参数与方法重载
- 方法重载和方法覆盖及其异同(Java)
- (十四)、方法重载
- 方法重载(overload)
- java方法重载(慎用重载)
- 构造方法(方法重载)
- Java之方法重载篇(我重载了,你要如何来调用我。。)
- java中方法的重载(重载的定义、特点和好处)
- javascript 继承
- [Session共享]Tomcat集群实现Session共享
- 贪心算法解决找零钱问题
- kubernetes的ceph RBD volume(5): 创建动态的volume绑定随replica scale的扩容和缩容的pod
- Linux系统的内核态和用户态
- Java(1):方法重载(1)
- 原生JS获取和设置指定属性
- OpenStack Tacker介绍
- hdu2104 辗转相除法
- 看完让你彻底搞懂Websocket原理
- 辗转相除法求两个非负数的最大公约数问题
- MVVM 框架结构
- 【安全牛学习笔记】离线密码破解
- Vuejs组件——slot内容分发