Java教程

学习笔记--Java方法重载

本文主要是介绍学习笔记--Java方法重载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java方法重载

感受

以下代码不使用“方法重载”,不使用overload,分析程序存在的缺点

public class OverloadTest01 {

    // 入口
    public static void main(String[] args){

        int result1 = sumInt(1, 2);
        System.out.println(result1);

        double result2 = sumDouble(1.0, 2,0);
        System.out.println(result2);

        long result3 = sumLong(1L, 2L);
        System.out.println(result3);

    }

    public static int sumInt(int a, int b){

        return a + b;
    }

    public static double sumDouble(double a, double b){

        return a + b;
    }

    public static long sumLong(long a, long b){

        return a + b;
    }
}

缺点:

  1. sumInt、sumDouble、sumLong方法虽然功能不同,但功能相似【求和】

  2. 代码不美观,影响阅读,对以后维护造成不便

解决:使用 Sun 公司提供的【方法重载/overload】机制,仅限功能相似

体验方法重载:

public class OverloadTest01 {

    // 入口
    public static void main(String[] args){

        System.out.println(sum(1, 2));
        System.out.println(sum(1.0, 2.0));
        System.out.println(sum(1L, 2L));

    }


    public static int sum(int a, int b){
        System.out.println("sum(int)")
        return a + b;
    }

    public static double sum(double a, double b){
        System.out.println("sum(double)")
        return a + b;
    }

    public static long sum(long a, long b){
        System.out.println("sum(long)")
        return a + b;
    }

}

可以看到,使用方法重载,此时区分方法不再依靠方法名,依靠参数的参数数据类型

参数的类型不同,对应调用的方法不同

使用方法重载,注意区分功能的相似度,功能有明显区别应该以不同名称命名,避免触发方法重载

方法重载使用

方法重载:

  1. 方法重载又被称作:overload

  2. 什么时候能使用方法重载?

    • 功能相似时,尽可能使用
  3. 什么条件构成方法重载?

    • 在同一个类当中
    • 方法名相同
    • 参数列表不同:
      • 数量不同
      • 顺序不同
      • 类型不同
  4. 方法重载和什么有关系,和什么没关系?

    • 方法名+参数列表有关系
    • 返回值类型无关
    • 修饰符列表无关
public class OverloadTest02{

    public static void main(String[] args){

        U.p(10);
        U.p(false);
        U.p('a');
        U.p("hello World");
        U.p(3.0);
    }
}

class U{

    public static void p(byte b){
        System.out.println(b);
    }
        public static void p(short b){
        System.out.println(b);
    }
        public static void p(int b){
        System.out.println(b);
    }
        public static void p(long b){
        System.out.println(b);
    }
        public static void p(float b){
        System.out.println(b);
    }
        public static void p(double b){
        System.out.println(b);
    }
        public static void p(boolean b){
        System.out.println(b);
    }
        public static void p(char b){
        System.out.println(b);
    }
        public static void p(String b){
        System.out.println(b);
    }
}




这篇关于学习笔记--Java方法重载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!