【JavaSE】java中方法的重载(入门基础)


目标:能够理解方法重载的概念,好处

没有方法重载时的问题:
    假设我们要设计一个计算器软件
    两个int相加     三个int相加
    当没有方法重载时多个相同的功能需要不同方法名.使用很麻烦


一、什么是方法重载

同一个类中出现了多个同名的方法,这些同名的方式是重载的方法

二、使用要求及其使用

1.方法重载的要求

     1.同一个类中
     2.方法名相同
     3.参数列表不同
         3.1 参数个数不同
         3.2 类型不同
         3.3 顺序不同


2.方法重载的使用

public class Demo022 {
    public static void main(String[] args) {
        System.out.println(compare((byte)1, (byte)2));
        System.out.println(compare((short) 2, (short) 6));
        System.out.println(compare(3, 8));
        System.out.println(compare(3L, 8L));
    }

    // 比较byte是否相同, 相同true, 不相同false
    public static boolean compare(byte b1, byte b2) {
        /*if (b1 == b2) {
            return true;
        } else {
            return false;
        }*/
        return b1 == b2;
    }

    // 比较short是否相同
    public static boolean compare(short s1, short s2) {
        return s1 == s2;
    }

    // 比较int是否相同
    public static boolean compare(int i1, int i2) {
        return i1 == i2;
    }

    // 比较long是否相同
    public static boolean compare(long l1, long l2) {
        return l1 == l2;
    }
}

3.判断哪些方法是重载关系

方法重载3个要求: 两同一不同
1.同一个类中
2.方法名相同
3.参数列表不同

方法重载和修饰符,返回值类型无关

代码示例:

public class Demo023 {
    public static void open(){}
    public static void open(int a){}
    static void open(int a,int b){}
    public static void open(double a,int b){}
    public static void open(int a,double b){}
//    public static void open(int i,double d){} // 和上一个方法是重复的.参数列表相同啦,参数列表看类型.不看变量名
//    public void open(int i,double d){} // 和上一个方法是重复的.参数列表相同啦
//    public static void OPEN(){} // 方法名不同,不是重载
}


三.方法定义的练习(复习)

1.设计一个方法用于数组遍历

需求:
设计一个方法用于数组遍历,要求遍历的结果是在一行上的。

定义方法两个明确:

1.明确返回值类型,就是结果的类型, 遍历打印结果.不需要返回值
2.明确参数列表,方法中的未知数据 参数列表(int[] arr)

传递引用数据类型,引用传递(传递地址)

代码:

public class Demo031 {
    public static void main(String[] args) {
        //                      0   1   2   3   4
        int[] arr = new int[] {11, 22, 33, 44, 55}; // 数组的长度是5,最大索引是4,  最大索引是长度-1
        // arr.length(5) - 1 = 最大索引(4)
        printArray(arr);
        printArray(arr);
    }

    // 打印数组内容的方法, a也是指向传递进来的数组      [11, 22, 33, 44, 55]
    public static void printArray(int[] a) {
        // 1.打印[
        System.out.print("[");

        // 2.遍历数组获取每个元素
        for (int i = 0; i < a.length; i++) {
            // i = 0    a[0]  11,
            // i = 1    a[1]  22,
            // i = 2    a[2]  33,
            // i = 3    a[3]  44,
            // i = 4    a[4]  55]
            // 3.如果是最后一个元素,打印 元素]
            if (i == a.length - 1) {
                System.out.println(a[i] + "]"); // println 先打印内容,后换行
            } else {
                // 4.如果是不是最后一个元素,打印 元素,
                System.out.print(a[i] + ", ");
            }
        }
    }
}

2.设计一个方法用于获取数组中元素的最大值

定义方法2个明确:
1.明确返回值类型: 返回数组的最大值, 返回值类型 int
2.明确参数列表: 获取哪个数组的最大值,不确定, 参数列表: (int[] a)

代码:

public class Demo032 {
    public static void main(String[] args) {
        int[] arr = new int[] {8, 9, 1, 3, 2, 6};

        int x = getMax(arr);
        System.out.println("数组最大值为: " + x);
    }

    public static int getMax(int[] a) {
        // 1.定义一个变量保存较大值,这个变量默认值为数组0索引的数据
        int max = a[0]; // 8

        // 2.遍历数组获取每个元素
        for (int i = 1; i < a.length; i++) {
            // 3.将遍历出的数据和变量比较
            // 如果遍历出的数据大于变量, 将大的值赋值变量
            if (a[i] > max) {
                max = a[i];
            }
        }

        // 返回最大值
        return max;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值