java方法重载的快速入门

基本介绍:

java中允许同一个类中,多个同名方法的存在,但要求,形参列表不一致

重载的好处:

1.减轻了起名字的麻烦
2.减轻了记名的麻烦

快速入门案例:

  1. calculate(int n1, int n2)
  2. calculate(int n1, double n2)
  3. calculate(int n1, int n2, int n3)

代码:

package review.javaSE_.oop_;

/**
 * @author: ln
 * @data:
 * @description:方法重载的快速入门
 */
public class OverLoad01 {
    public static void main(String[] args) {
        MyCalculator myCalculator = new MyCalculator();
        System.out.println(myCalculator.calculate(6,6));
        System.out.println(myCalculator.calculate(6,6.6));
        System.out.println(myCalculator.calculate(6,6,6));
    }
}
class MyCalculator {
    //下面四个calculate方法构成了重载

    //两个整数的和
    public int calculate(int n1, int n2) {
        System.out.println("calculate(int n1, int n2)被调用");
        return n1 + n2;
    }

    //没有构成方法重载,仍然是错误的,因为是方法的重复定义
//    public int calculate(int n1, int n2) {
//        System.out.println("calculate(int n1, int n2)被调用");
//        int res = n1 + n2;
//        return res;
//    }

    //没有构成方法重载,仍然是错误的,因为是方法的重复定义
//    public int calculate(int a1, int a2) {
//        System.out.println("calculate(int n1, int n2)被调用");
//        return a1 + a2;
//    }

    //一个整数和一个浮点数
    public double calculate(int n1, double n2) {
        System.out.println("calculate(int n1, double n2)被调用");
        return n1 + n2;
    }

    //三个int 的和
    public int calculate(int n1, int n2, int n3) {
        System.out.println("calculate(int n1, int n2, int n3)被调用");
        return n1 + n2 + n3;
    }
}

注意事项和使用细节

1.方法名:必须相同
2.形参列表:必须不同(形参的类型或者个数、顺序,至少有一个不同,参数名无要求)
3.返回类型:无要求

练习题目:

判断题:

与void show(int a, char b, double c){} 构成重载的有 【b, c, d, e】

a. void show(int x, char y, double z){} //不是,形参列表一样
b. int show(int a, double b, char c){} //是
c. void show(int a, double b, char c){} //是
d. boolean show(int a, char b){} //是
e. void show(double c){} //是
f. double show(int c, char y, double z){} //不是,形参列表一样
g. void shows(){} //不是,方法名不一样

编程题:

1.再类Methods中定以三个重载方法并调用,方法名为m。三个方法分别接受一个int参数,两个int参数,一个字符串参数。分别执行平方运算并输出结果,相乘并输出结果,输出字符串信息。在类中分别调用

代码:

package review.javaSE_.oop_;

/**
 * @author: ln
 * @data:
 * @description:
 */
public class OverloadExercise {
    public static void main(String[] args) {
        Methods methods = new Methods();
        System.out.println(methods.m(2));
        System.out.println(methods.m(2,2));
        methods.m("李华");
    }
}
class Methods {
    public int m(int n) {
        System.out.println("m(int n)方法被调用");
        return n * n;
    }

    public int m(int n1, int n2) {
        System.out.println("m(int n1, int n2)方法被调用");
        return n1 * n2;
    }

    public void m(String str) {
        System.out.println("m(String str)方法被调用");
        System.out.println(str);
    }
}


在Methods类中定义三个重载方法max(),第一个方法,返回两个int值中的最大值,第二个方法,返回两个double值中的最大值,第三个方法,返回三个double值中的最大值,并分别调用三个方法。

代码:

package review.javaSE_.oop_;

/**
 * @author: ln
 * @data:
 * @description:
 */
public class OverloadExercise {
    public static void main(String[] args) {
        Methods methods = new Methods();
        System.out.println(methods.m(2));
        System.out.println(methods.m(2,2));
        methods.m("李华");

        System.out.println(methods.max(6,5));
        System.out.println(methods.max(6.6,7.7));
        System.out.println(methods.max(5.5,6.6,7.7));
    }
}
class Methods {
    public int m(int n) {
        System.out.println("m(int n)方法被调用");
        return n * n;
    }

    public int m(int n1, int n2) {
        System.out.println("m(int n1, int n2)方法被调用");
        return n1 * n2;
    }

    public void m(String str) {
        System.out.println("m(String str)方法被调用");
        System.out.println(str);
    }

    public int max(int n1, int n2) {
        System.out.println("max(int n1, int n2)方法被调用");
        return n1 > n2 ? n1 : n2;
    }

    public double max(double n1, double n2) {
        System.out.println("max(double n1, double n2)方法被调用");
        return n1 > n2 ? n1 : n2;
    }

    public double max(double n1, double n2, double n3) {
        System.out.println("max(double n1, double n2, double n3)方法被调用");
        double temp = n1 > n2 ? n1 : n2;
        return n3 > temp ? n3 : temp;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值