java -> 方法的重载

方法的重载

我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法。接下来通过一个案例来实现对两个整数相加、对三个整数相加以及对两个小数相加的功能,具体实现如下所示。MethodDemo02.java

public class MethodDemo02 {

public static void main(String[] args) {

// 下面是针对求和方法的调用

int sum1 = add01(1, 2);

int sum2 = add02(1, 2, 3);

double sum3 = add03(1.2, 2.3);

// 下面的代码是打印求和的结果

System.out.println("sum1=" + sum1);

System.out.println("sum2=" + sum2);

System.out.println("sum3=" + sum3);

}

// 下面的方法实现了两个整数相加

public static int add01(int x, int y) {

return x + y;

}

// 下面的方法实现了三个整数相加

public static int add02(int x, int y, int z) {

return x + y + z;

}

// 下面的方法实现了两个小数相加

public static double add03(double x, double y) {

return x + y;

}

}

运行结果如下图所示。

图1-1      运行结果

从上述代码不难看出,程序需要针对每一种求和的情况都定义一个方法,如果每个方法的名称都不相同,在调用时就很难分清哪种情况该调用哪个方法。

为了解决这个问题,Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。

下面的三个方法互为重载关系

l  public static int add(int x,int y) {逻辑} //两个整数加法

l  public static int add(int x,int y,int z) {逻辑} //三个整数加法

l  public static int add(double x,double y) {逻辑} //两个小数加法

接下来通过方法重载的方式进行修改,如下所示。MethodDemo03.java

public class MethodDemo03 {

public static void main(String[] args) {

// 下面是针对求和方法的调用

int sum1 = add(1, 2);

int sum2 = add(1, 2, 3);

double sum3 = add(1.2, 2.3);

// 下面的代码是打印求和的结果

System.out.println("sum1=" + sum1);

System.out.println("sum2=" + sum2);

System.out.println("sum3=" + sum3);

}

// 下面的方法实现了两个整数相加

public static int add(int x, int y) {

return x + y;

}

// 下面的方法实现了三个整数相加

public static int add(int x, int y, int z) {

return x + y + z;

}

// 下面的方法实现了两个小数相加

public static double add(double x, double y) {

return x + y;

}

}

MethodDemo02.java的运行结果和MethodDemo03.java一样,如下图所示。

图1-2      运行结果

上述代码中定义了三个同名的add()方法,它们的参数个数或类型不同,从而形成了方法的重载。

在main()方法中调用add()方法时,通过传入不同的参数便可以确定调用哪个重载的方法,如add(1,2)调用的是两个整数求和的方法。值得注意的是,方法的重载与返回值类型无关,它只有两个条件,一是方法名相同,二是参数个数或参数类型不相同。

重载的注意事项

  重载方法参数必须不同:

    参数个数不同,如method(int x)与method(int x,int y)不同

    参数类型不同,如method(int x)与method(double x)不同g

    参数顺序不同,如method(int x,double y)与method(double x,int y)不同

  重载只与方法名与参数类型相关与返回值无关

    如void method(int x)与int method(int y)不是方法重载,不能同时存在

  重载与具体的变量标识符无关

    如method(int x)与method(int y)不是方法重载,不能同时存在

原文地址:https://www.cnblogs.com/miaoxingren/p/9363906.html

时间: 2024-08-05 22:46:48

java -> 方法的重载的相关文章

Java——方法的重载

方法的重载就是在同一个类中可以同时存在多个同名的方法,只要这些方法的参数或类型不同.方法重载可以使两个方法的返回值不同,但只有返回值还不足以区分两个方法的重载,还需要通过参数的类型.个数.长度来设定.一个简单地例子: public class OverLoadTest { public static int add(int a ,int b){ return a+b; } public static double add(double a ,double b){ return a+b; } pu

JAVA方法的重载(overload)和覆盖(override)

方法的重载(overload)和覆盖(override) 有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式.运行时,Java虚拟机先判断给定参数的类型,然后决定执行哪个println()方法. 重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系.这里有两个问题需要注意: (1)       什

详解java方法的重载

1.方法的重载: 方法名相同,参数列表不同就叫做方法的重载. 2.怎样正确区分方法是不同的方法: 1.看方法名名是否相同,方法名不同即为不同的方法 2.看参数列表是否相同.参数列表的不同分为两部分:a. 参数个数不同 b.参数的数据类型不同. 注意: a.方法的重载和返回值/修饰符列表无关. b.如果方法名相同,参数列表相同,则此方法是重复的,是个错误. 3.方法的执行原理: 方法不调用不执行,一调用才执行,调用的结果返回到方法的调用处. 4.从内存数据结构分析方法的调用: 方法在调用的时候,才

java方法的重载

public class Person1 {    private String name; //姓名    private int age;      //年龄    private String school;  //学校     private String major; //班级    //构造方法    public Person1 (String n,int a,String s,String m)    {         this.name=n;        this.age=

java 方法的重载重写

面向对象有三大特性:封装,继承,多态 多态则需要满足三大条件1要有继承2要有重写3父类引用子类对象 很多人对方法的重载重写有很大疑问,下面我来介绍一下方法的重载重写 方法重载就是方法名称重复,加载参数不同 满足的条件: 一.方法名一定要相同. 二.方法的参数表必须不同,包括参数的类型或个数,以此区分不同的方法体. 1.如果参数个数不同,就不管它的参数类型了! 2.如果参数个数相同,那么参数的类型必须不同. 三.方法的返回类型.修饰符可以相同,也可不同. class MethodOverloadi

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

对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦. 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样.好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能. 方法重载与下列因素相关: 1. 参数个数不同 2. 参数类型不同 3. 参数的多类型顺序不同 方法重载与下列因素无关: 1. 与参数的名称无关 2. 与方法的返回值类型无关 1 public class DemoMethodOverload { 2 3 public static

比较Java方法的重载与覆盖

重载(overload) 覆盖(override) 概念 存在于同一个类中的多个同名方法,返回值类型相同,参数列表不同 派生类重新定义与基类方法同名的方法,返回值类型和参数列表均相同,只是行为不同 出现位置 同一个类中 有继承关系的不同类中 返回值类型 相同 相同 参数列表 参数个数不同,或参数类型不同 相同 特点 与返回值类型无关,只关注参数列表 (1)派生类方法可以分配与基类方法同样或更大的访问权限 (2)派生类不能覆盖标记为final的基类方法 (3)派生类方法可以抛出与基类方法相同的异常

Java方法的重载和重写

重载与重写对比:  重载: 权限修饰符(public private 默认):无关 方法名:重载的两个方法的方法名必须相同 形参的个数不同 形参的类型不同 三者至少满足一个 返回值类型: 重载与返回值类型无关 重写: 权限修饰符(public private 默认): 子类方法的权限>=父类的方法的权限 方法名: 子类方法和父类方法必须相同 形参列表: 子类方法和父类方法的形参列表必须相同 返回值类型: 基本类数据类型: 必须相同 引用数据类型: 子类方法的返回值类型和父类方法的返回值类型相同

java怎样实现重载一个方法

重载(重新载选方法): java允许在一个类中,存在多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载的解析 . 重载包括:普通方法的重载和构造方法的重载 方法:即函数(文中我们统称之为"方法"),是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能.而且,同时还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我