Java中方法的重载

mac2026-05-26  2

package demo04; /* 对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦 方法的重载(Overload),多个方法的名称一样,但是参数列表不一样 好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能 方法重载与下列因素相关 1.参数个数不同 2.参数类型不同 3.参数多类型顺序不同 方法重载与下列因素无关 1.与参数名称无关 2.与方法返回值无关 */ public class Demo01MethodOverload { public static void main(String[] args) { // System.out.println(sumTwo(10,20)); // System.out.println(sumThree(10,20,30)); // System.out.println(sumFour(10,20,30,40)); System.out.println(sum(10,20));//两个参数的方法 System.out.println(sum(10,20,30));//三个参数的方法 System.out.println(sum(10,20,30,40));//四个参数的方法 // System.out.println(sum(10,20,30,40,50)); 找不到任何方法来匹配 } public static int sum(int a, int b){ System.out.println("有两个参数的方法执行"); return a + b; } public static int sum(double a, double b){ return (int)(a + b); } public static int sum(int a, double b){ return (int)(a + b); } public static int sum(double a, int b){ return (int)(a + b); } // 错误写法,与参数名称无关 // public static int sum(int x, int y){ // return x + y; // } // 错误写法,与反方返回值无关 // public static double sum(int a, int b){ // return a + b; // } public static int sum(int a, int b, int c){ System.out.println("有三个参数的方法执行"); return a + b + c; } public static int sum(int a, int b, int c, int d){ System.out.println("有四个参数的方法执行"); return a + b + c + d; } } package demo04; /* 题目要求: 比较两个数据是否相等 参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型 并在main方法中进行测试 */ public class Demo02MethodOverloadSame { public static void main(String[] args) { byte a =10; byte b =20; System.out.println(isSame(a,b)); System.out.println(isSame((short)10,(short)20)); System.out.println(isSame(11,12)); System.out.println(isSame(10L,20L)); } public static boolean isSame(byte a, byte b){ System.out.println("两个byte参数的方法执行"); boolean same; if (a == b){ same = true; }else { same = false; } return same; } public static boolean isSame(short a, short b){ System.out.println("两个short参数的方法执行"); boolean same = a == b ? true : false; return same; } public static boolean isSame(int a, int b){ System.out.println("两个int参数的方法执行"); return a == b; } public static boolean isSame(long a, long b){ System.out.println("两个long参数的方法执行"); if(a == b){ return true; }else { return false; } } } package demo04; //byte short int long float double char boolean //short //在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式 public class Demo04MethodOverloadPrint { public static void main(String[] args) { myprint(100);//int myprint("Hello");//String } public static void myprint(byte num){ System.out.println(num); } public static void myprint(short num){ System.out.println(num); } public static void myprint(int num){ System.out.println(num); } public static void myprint(long num){ System.out.println(num); } public static void myprint(float num){ System.out.println(num); } public static void myprint(double num){ System.out.println(num); } public static void myprint(char zifu){ System.out.println(zifu); } public static void myprint(boolean is){ System.out.println(is); } public static void myprint(String str){ System.out.println(str); } }
最新回复(0)