zoukankan      html  css  js  c++  java
  • java方法重载

    首先看一段代码:都是计算x+y的值,三个方法功能都一样,名字不一样。

    但是他的缺点是:程序员需要记住每个名字。

    public class TestLoad01 {
        public static void main(String[] args) {
            int x = sumInt(10,20);
            System.out.println(x);
            long y =sumLong(10L,20L);
            System.out.println(y);
            double z = sumdouble(10.0,20.0);
            System.out.println(z);
        }
    
        public static int sumInt(int x, int y){
            return x+y;
        }
    
        public static long sumLong(long x, long y){
            return x+y;
        }
    
        public static double sumdouble(double x, double y){
            return x+y;
        }
    }

    方法重载机制,解决之前的缺点:

    优点1:代码整齐美观

    优点2:功能相似的,可以让方法名相同,更易于以后代码的编写,程序员只需要记住一个就可以。

    public class TestLoad01 {
        public static void main(String[] args) {
            int x = sum(10,20);
            System.out.println(x);
            long y =sum(10L,20L);
            System.out.println(y);
            double z = sum(10.0,20.0);
            System.out.println(z);
        }
    
        public static int sum(int x, int y){
            System.out.println("int求和");
            return x+y;
        }
    
        public static long sum(long x, long y){
            System.out.println("Long求和");
            return x+y;
        }
    
        public static double sum(double x, double y){
            System.out.println("double求和");
            return x+y;
        }
    }

    所以,方法重载的定义就是,在同一个类中,方法名字相同,所传的参数类型不同,或者参数数量不同,或者位置不同,实现功能相似,这种叫做方法的重载。

    比如以下:

    public static int sum(int x, int y){
            System.out.println("int求和");
            return x+y;
        }
    
        public static long sum(long x, long y){
            System.out.println("Long求和");
            return x+y;
        }
    
        public static double sum(double x, double y){
            System.out.println("double求和");
            return x+y;
        }
    
        public static double sum(double x, double y,double z){
            System.out.println("double求和");
            return x+y+z;
        }
    
        public static double sum(double y, double x, int z){
            System.out.println("double求和");
            return x+y+z;
        }

    但是以下两个不是方法重载:因为,类型一样,那么调用的时候,就会报错,不知道调用哪个,这个是方法的重复了。也不是靠返回值的类型,只是靠的是名字和参数。

     public static double sum(double x, double y,double z){
            System.out.println("double求和");
            return x+y+z;
        }
    
        public static double sum(double y, double x, int z){
            System.out.println("double求和");
            return x+y+z;
        }

     注意:方法重载和方法“返回值类型”无关

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

  • 相关阅读:
    071 Simplify Path 简化路径
    070 Climbing Stairs
    069 Sqrt(x) 求平方根
    067 Add Binary 二进制求和
    bzoj3295: [Cqoi2011]动态逆序对
    bzoj1598: [Usaco2008 Mar]牛跑步
    bzoj1492: [NOI2007]货币兑换Cash
    bzoj2683(要改一点代码)&&bzoj1176: [Balkan2007]Mokia
    bzoj2190: [SDOI2008]仪仗队
    bzoj3262: 陌上花开
  • 原文地址:https://www.cnblogs.com/peiminer/p/13589970.html
Copyright © 2011-2022 走看看