【Java方法重载】 定义,使用,理解,示例解读

简介: 【Java方法重载】 定义,使用,理解,示例解读


什么是方法重载?

Java方法重载是指在同一个类中可以定义多个同名方法,但是这些方法需要在不同的参数列表上进行调用。

也就是说,当调用该方法时,Java会根据方法的参数列表来判断应该调用哪一个方法。

方法重载可以让程序更加灵活,能够处理不同的数据类型和参数组合,是面向对象编程的重要特性之一。

可以通过方法名称相同,参数类型或数量不同来重载方法。

重载方法必须在同一个类中定义

对于方法重载的理解

  1. 方法重载必须在同一个类中,方法名相同,不同的参数列表,不同的参数类型,不同的参数数量
  2. JVM通过方法的参数列表,调用不同的方法

方法重载的两个示例

注: 传递类型不同称为重载, 调用时若与任意一方法内参数内容不同,则报错

定义不同的功能

public class Demo {
    public void add(int a, int b) {
        int sum = a + b;
        System.out.println("两数之和: " + a + " 和 " + b + " 是 " + sum);
    }
    public void add(double a, double b) {
        double sum = a + b;
        System.out.println("两数之和: " + a + " 和 " + b + " 是 " + sum);
    }
    public void add(String a, String b) {
        String c = a + " " + b;
        System.out.println("字符串相加: " + a + " 和 " + b + " 是 " + c);
    }
    public static void main(String[] args) {
        Demo do = new Demo();
        do.add(10, 20);
        do.add(10.5, 20.5);
        do.add("Hello", "World");
    }
}

在这个例子中,add()方法被重载了三次

每个方法都有自己不同的参数,当我们传递对应的参数,编辑器会根据传递的参数自动找到对应方法并调用

pringln打印不同类型

public class Demo {
    public void setPrint(int a, int b) {
        System.out.println(a, b);
    }
    public void setPrint(double a, double b) {
        System.out.println(a, b);
    }
    public void setPrint(String a, String b) {
        System.out.println(a, b);
    }
    public static void main(String[] args) {
        Demo do = new Demo();
        do.add(10, 20);
        do.add(10.5, 20.5);
        do.add("Hello", "World");
    }
}

在这个例子中,setPrint()方法被重载了三次

每个方法都有自己不同的参数,当我们传递对应的参数,编辑器会根据传递的参数自动找到对应方法并在控制台输出对应的内容

相关文章
Java API 开发者
41 0
|
2月前
|
安全 Java 网络安全
Java 实现 SMTP 协议调用的详细示例及实战指南 SMTP Java 调用示例
本文介绍了如何使用Java调用SMTP协议发送邮件,涵盖SMTP基本概念、JavaMail API配置、代码实现及注意事项,适合Java开发者快速掌握邮件发送功能集成。
238 0
|
2月前
|
算法 搜索推荐 Java
Java中的Collections.shuffle()方法及示例
`Collections.shuffle()` 是 Java 中用于随机打乱列表顺序的方法,基于 Fisher-Yates 算法实现,支持原地修改。可选传入自定义 `Random` 对象以实现结果可重复,适用于抽奖、游戏、随机抽样等场景。
120 0
|
3月前
|
存储 安全 Java
应届生面试高频 Java 基础问题及实操示例解析
本文总结了Java基础面试中的高频考点,包括数据类型分类、final修饰符的三种用途、static关键字特性、==与equals的区别、Java只有值传递的特性、String的不可变性、Error与Exception的差异、程序初始化顺序规则,以及IO流的字节流/字符流分类。每个问题都配有简明定义和典型示例,如用final修饰变量示例、static方法调用限制说明等,帮助应聘者快速掌握核心概念和实际应用场景。
55 0
|
3月前
|
Java 关系型数据库 MySQL
2025 年互联网公司校招 Java 面试题总结及答案实操示例解析
本项目基于Spring Boot 3与Java 17技术栈,围绕校园招聘常见面试题,提供核心知识点的实操示例。涵盖多线程、RESTful API设计、数据库操作(Spring Data JPA)、事务管理及异常处理等。通过完整代码实现与运行步骤,帮助理解用户管理、线程池配置等实际应用场景。资源包含项目结构、关键代码示例(如User实体类、UserService服务层、ThreadService多线程实现)及数据库迁移脚本,适合深入学习与实践。环境要求:JDK 17+、Maven 3.8+、MySQL 8.0+。
154 3
|
5月前
|
存储 Java 数据挖掘
Java 中数组的多种定义方式
本文深入解析了Java中数组的多种定义方式,涵盖基础的`new`关键字创建、直接初始化、动态初始化,到多维数组、`Arrays.fill()`方法以及集合类转换为数组等高级用法。通过理论与实践结合的方式,探讨了每种定义方法的适用场景、优缺点及其背后的原理,帮助开发者掌握高效、灵活的数组操作技巧,从而编写更优质的Java代码。
209 0
|
6月前
|
存储 JSON Java
《从头开始学java,一天一个知识点》之:方法定义与参数传递机制
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 🚀 这个系列就是为你打造的Java「速效救心丸」!我们承诺:每天1分钟,地铁通勤、午休间隙即可完成学习;直击痛点,只讲高频考点和实际开发中的「坑位」;拒绝臃肿,没有冗长概念堆砌,每篇都有可运行的代码标本。上篇:《输入与输出:Scanner与System类》 | 下篇剧透:《方法重载与可变参数》。
138 25
|
6月前
|
存储 监控 Java
《从头开始学java,一天一个知识点》之:数组入门:一维数组的定义与遍历
**你是否也经历过这些崩溃瞬间?** - 看了三天教程,连`i++`和`++i`的区别都说不清 - 面试时被追问"`a==b`和`equals()`的区别",大脑突然空白 - 写出的代码总是莫名报NPE,却不知道问题出在哪个运算符 这个系列就是为你打造的Java「速效救心丸」!我们承诺:每天1分钟,地铁通勤、午休间隙即可完成学习;直击痛点,只讲高频考点和实际开发中的「坑位」;拒绝臃肿,没有冗长概念堆砌,每篇都有可运行的代码标本。明日预告:《多维数组与常见操作》。 通过实例讲解数组的核心认知、趣味场景应用、企业级开发规范及优化技巧,帮助你快速掌握Java数组的精髓。
124 23
|
10月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
277 38
|
10月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。