• Java基础---Java方法的重载Overload


    对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。

    方法的重载(Overload)多个方法的名称一样,但是参数列表不一样。
    好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。

    方法重载与下列因素相关:
      1. 参数个数不同
      2. 参数类型不同
      3. 参数的多类型顺序不同

    方法重载与下列因素无关:
      1. 与参数的名称无关
      2. 与方法的返回值类型无关

     1 public class DemoMethodOverload {
     2 
     3     public static void main(String[] args) {
     4         /*System.out.println(sumTwo(10, 20)); // 30
     5         System.out.println(sumThree(10, 20, 30)); // 60
     6         System.out.println(sumFour(10, 20, 30, 40)); // 100*/
     7 
     8         System.out.println(sum(10, 20)); // 两个参数的方法
     9         System.out.println(sum(10, 20, 30)); // 三个参数的方法
    10         System.out.println(sum(10, 20, 30, 40)); // 四个参数的方法
    11 //        System.out.println(sum(10, 20, 30, 40, 50)); // 找不到任何方法来匹配,所以错误!
    12 
    13         sum(10, 20);
    14     }
    15 
    16     public static int sum(int a, double b) {
    17         return (int) (a + b);
    18     }
    19 
    20     public static int sum(double a, int b) {
    21         return (int) (a + b);
    22     }
    23 
    24     public static int sum(int a, int b) {
    25         System.out.println("有2个参数的方法执行!");
    26         return a + b;
    27     }
    28 
    29     // 错误写法!与方法的返回值类型无关
    30 //    public static double sum(int a, int b) {
    31 //        return a + b + 0.0;
    32 //    }
    33 
    34     // 错误写法!与参数的名称无关
    35 //    public static int sum(int x, int y) {
    36 //        return x + y;
    37 //    }
    38 
    39     public static int sum(double a, double b) {
    40         return (int) (a + b);
    41     }
    42 
    43     public static int sum(int a, int b, int c) {
    44         System.out.println("有3个参数的方法执行!");
    45         return a + b + c;
    46     }
    47 
    48     public static int sum(int a, int b, int c, int d) {
    49         System.out.println("有4个参数的方法执行!");
    50         return a + b + c + d;
    51     }
    52 
    53 }

    题目要求:
    比较两个数据是否相等。
    参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
    并在main方法中进行测试。

     1 public class Demo02MethodOverloadSame {
     2 
     3     public static void main(String[] args) {
     4         byte a = 10;
     5         byte b = 20;
     6         System.out.println(isSame(a, b));
     7 
     8         System.out.println(isSame((short) 20, (short) 20));
     9 
    10         System.out.println(isSame(11, 12));
    11 
    12         System.out.println(isSame(10L, 10L));
    13     }
    14 
    15     public static boolean isSame(byte a, byte b) {
    16         System.out.println("两个byte参数的方法执行!");
    17         boolean same;
    18         if (a == b) {
    19             same = true;
    20         } else {
    21             same = false;
    22         }
    23         return same;
    24     }
    25 
    26     public static boolean isSame(short a, short b) {
    27         System.out.println("两个short参数的方法执行!");
    28         boolean same = a == b ? true : false;
    29         return same;
    30     }
    31 
    32     public static boolean isSame(int a, int b) {
    33         System.out.println("两个int参数的方法执行!");
    34         return a == b;
    35     }
    36 
    37     public static boolean isSame(long a, long b) {
    38         System.out.println("两个long参数的方法执行!");
    39         if (a == b) {
    40             return true;
    41         } else {
    42             return false;
    43         }
    44     }
    45 
    46 }

     判断方法是否能够重载

     1 public class Demo03OverloadJudge {
     2     public static void open(){} // 正确重载
     3     public static void open(int a){} // 正确重载
     4     static void open(int a,int b){} // 代码错误:和第8行冲突
     5     public static void open(double a,int b){} // 正确重载
     6     public static void open(int a,double b){} // 代码错误:和第6行冲突
     7     public void open(int i,double d){} // 代码错误:和第5行冲突
     8     public static void OPEN(){} // 代码正确不会报错,但是并不是有效重载
     9     public static void open(int i,int j){} // 代码错误:和第3行冲突
    10 }
  • 相关阅读:
    第06课:GDB 常用命令详解(下)
    第05课:GDB常用命令详解(中)
    第04课:GDB常用命令详解(上)
    第03课:GDB常用的调试命令概览
    第02课:启动GDB调试
    第01课:调试信息与调试原理
    数据库(二)
    数据库笔记(一)
    acedSSGet 翻译
    ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)
  • 原文地址:https://www.cnblogs.com/hoganhome/p/11487420.html
Copyright © 2020-2023  润新知