学习笔记--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; } }
缺点:
-
sumInt、sumDouble、sumLong方法虽然功能不同,但功能相似【求和】
-
代码不美观,影响阅读,对以后维护造成不便
解决:使用 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; } }
可以看到,使用方法重载,此时区分方法不再依靠方法名,依靠参数的参数数据类型
参数的类型不同,对应调用的方法不同
使用方法重载,注意区分功能的相似度,功能有明显区别应该以不同名称命名,避免触发方法重载
方法重载使用
方法重载:
-
方法重载又被称作:overload
-
什么时候能使用方法重载?
- 功能相似时,尽可能使用
-
什么条件构成方法重载?
- 在同一个类当中
- 方法名相同
- 参数列表不同:
- 数量不同
- 顺序不同
- 类型不同
-
方法重载和什么有关系,和什么没关系?
- 方法名+参数列表有关系
- 返回值类型无关
- 修饰符列表无关
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); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了