栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java简单讲解方法重载

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java简单讲解方法重载

先不用方法重载,写个程序,分析程序存在的缺点

public class Test {
    public static void main(String[] args) {
        //调用方法
        int result1=sumInt(1,2);
        System.out.println(result1);

        double result2=sumDouble(1.0,2.0);
        System.out.println(result2);
        
        long result3=sumLong(1L,2L);
        System.out.println(result3);
    }
    //定义一个方法,可以计算两个int类型数据的和
    public static int sumInt(int a,int b){
        return a+b;
    }
    //定义一个方法,可以计算两个double类型数据的和
    public static double sumDouble(double a,double b){
        return a+b;
    }
    //定义一个方法,可以计算两个long类型数据的和
    public static long sumLong(long a,long b){
        return a+b;
    }
}

运行结果如下图

虽然上面代码运行没问题,但是实际来说,上面代码非常不方便,实现三个相似的功能,但是却要记三个方法名,然后调用三个不同的方法,而且代码不美观.

所以有一种机制,使用这些方法(功能相似)就像使用一个同一个方法一样,不需要记忆更多的方法名,编写代码比较方便且美观一方法重载.

写一个方法重载的程序,体验一下方法重载的优点

public class Test {
    public static void main(String[] args) {
        //调用方法的时候就像在使用一个方法一样
        //参数的类型不同,对于调用的方法不同
        //此时区分方法不再依靠方法名了,依靠的是数据类型.
        System.out.println(sum(1,2));
        System.out.println(sum(1.0,2.0));
        System.out.println(sum(1L,2L));

    }
    //以下三个方法构成了方法重载
    public static int sum(int a,int b){
        return a+b;
    }
    public static double sum(double a,double b){
        return a+b;
    }
    public static long sum(long a,long b){
        return a+b;
    }
}

运行结果如下图,还是一样

简单了解方法重载后,我们需要知道使用方法重载的注意事项

方法重载:

                1、方法重载又被称为:overload

                2、什么时候考虑使用方法重载?

                        *功能相似的时候,尽可能让方法名相同.

                        [但是:功能不同的/不相似的时候,尽可能让方法名不同.]

                3、什么条件满足之后构成了方法重载?

                        *在同一个类当中

                        *方法名相同

                        *参数列表不同:

                                -数量不同

                                -顺序不同

                                -类型不同

                        

            public class Test {
                public static void main(String[] args) {
                    m1();
                    m1(10);

                    m2(1,2.0);
                    m2(2.0,1);

                    m3(10);
                    m3(3.0);
                }

                    //以下两个方法构成重载(数量不同)
                      public static void m1(){}
                      public static void m1(int a){}

                      //以下两个方法构成重载(顺序不同)
                      public static void m2(int a,double b){}
                      public static void m2(double a,int b ){}

                      //以下两个方法构成重载(数据类型不同)
                      public static void m3(int x){}
                      public static void m3(double x){}
}

                4、方法重载跟什么有关系,和什么没关系?

                        *方法重载和方法名,参数列表有关系

                        //以下不是方法重载,叫方法重复(形参中取决定作用的不是变量的名字,是参数的数据类型),所以编译错误

                        public static void m4(int a, int b){}

                        public static void m4(int b,int a){}

                        *方法重载和返回类型无关

                        public static void x(){}

                        public static int x(){return 1;}

                        这两个虽然返回类型不同,但是x()在这个Test类中已经被void x()已经是定义了,下面int x()即无效,所以这两个不能说是方法重载,编译错误.

                        *方法重载和修饰符列表无关

                        void y(){}

                        public static void y(){}

                         这两个也不能说是方法重载.

以上说了方法重载的基本知识,下面我们就来看一下方法重载的具体应用

public class Test {
    public static void main(String[] args) {
        U.p(10);
        U.p(false);
        U.p("abc");
        U.p(3.0);
    }
}
class  U{
 
    public static void p(int b){
        System.out.println(b);
    }
    public static void p(long b){
        System.out.println(b);
    }
    public static void p(float b){
        System.out.println(b);
    }
    public static void p(double b){
        System.out.println(b);
    }
    public static void p(boolean b){
        System.out.println(b);
    }
    public static void p(char b){
        System.out.println(b);
    }
    public static void p(String b){
        System.out.println(b);
    }
}

 

运行结果如下

有关方法重载就浅谈到这里了,goobye.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号