【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()方法被重载了三次

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

相关文章
|
1月前
|
Java
在 Java 中捕获和处理自定义异常的代码示例
本文提供了一个 Java 代码示例,展示了如何捕获和处理自定义异常。通过创建自定义异常类并使用 try-catch 语句,可以更灵活地处理程序中的错误情况。
66 1
|
2月前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
53 1
|
1月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
87 38
|
1月前
|
Java 编译器
Java重复定义变量详解
这段对话讨论了Java中变量作用域和重复定义的问题。学生提问为何不能重复定义变量导致编译错误,老师通过多个示例解释了编译器如何区分不同作用域内的变量,包括局部变量、成员变量和静态变量,并说明了使用`this`关键字和类名来区分变量的方法。最终,学生理解了编译器在逻辑层面检查变量定义的问题。
Java重复定义变量详解
|
2月前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
91 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
1月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。
|
2月前
|
Oracle Java 关系型数据库
重新定义 Java 对象相等性
本文探讨了Java中的对象相等性问题,包括自反性、对称性、传递性和一致性等原则,并通过LaptopCharger类的例子展示了引用相等与内容相等的区别。文章还介绍了如何通过重写`equals`方法和使用`Comparator`接口来实现更复杂的相等度量,以满足特定的业务需求。
32 3
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
56 9
|
2月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
32 1
|
2月前
|
Java API 网络安全
Java 发送邮件示例
本示例展示了如何使用Java编程语言发送电子邮件。通过利用JavaMail API,这段代码实现了从配置SMTP服务器,设置邮件属性,到发送邮件的全过程,为开发者提供了实用的参考。
195 10