【Java中的方法重载(Overload)-创新互联

目录标题
  • 1. 什么是方法重载?
  • 2. 方法重载(Overload)的定义?
  • 3. 注意事项和使用细节
  • 4. 代码演示讲解
  • 5. 练习细节
  • 尾言

10年积累的成都网站建设、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有静宁免费网站建设让你可以放心的选择与我们合作。1. 什么是方法重载?

对于初学者来说,下面的代码一定十分的熟悉。

public class Test {public static void main(String[] args) {int a = 1;
        double b = 1.2;
        char c = 'C';
        boolean d = true;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}

输出结果显而易见

在这里插入图片描述

从中我们不难思考一个问题,
a,b,c,d为四个不同类型的参数,为什么System.out.println(参数)都能输出呢?

查阅 jdk 的文档可以看出,println()有多种重载的方法

在这里插入图片描述
这就省去了我们的许多麻烦,一个方法名只要放入的参数不同,即可输出不同的结果。

2. 方法重载(Overload)的定义?

方法重载就是方法名称重复,加载参数不同。

3. 注意事项和使用细节

1. 方法名必须相同
2. 参数列表:必须不同。(参数的类型,个数,顺序,至少有一样不同,参数名无强制要求)
3. 返回类型:无要求。(可相同,可不同)

4. 代码演示讲解

首先,关于第一点

1. 方法名必须相同

public class Test {//方法名都为Sum
	//一个是求两数之和,一个是求三数字和
    public int Sum(int x, int y) {return x + y;
    }
    public int Sum(int x, int y, int z) {return x + y + z;
    }

    public static void main(String[] args) {Test test = new Test();
        int sum1 = test.Sum(1,2);//两数之和
        int sum2 = test.Sum(1,2,3);//三数之和
        System.out.println(sum1);//3
        System.out.println(sum2);//6
    }
}

其次,针对第二点

2. 参数列表:必须不同。(参数的类型,个数,顺序,至少有一样不同,参数名无强制要求)

参数的类型不同

public class Test {//类型为int 和 int
    public double Sum(int x, int y) {return x + y;
    }
    //类型为int 和 double
    public double Sum(int x, double y) {return x + y;
    }
	//方法名相同,类型不同,构成重载
    public static void main(String[] args) {Test test = new Test();
        double sum1 = test.Sum(1,2);//int int
        double sum2 = test.Sum(1,2.1);//int double
        System.out.println(sum1);//3.0
        System.out.println(sum2);//3.1
    }
}

参数的个数

public class Test {//参数个数为 int int 两个
    public int Sum(int x, int y) {return x + y;
    }
    //参数为int int int 三个
    public int Sum(int x, int y, int z) {return x + y + z;
    }
	//方法名相同,个数不同构成重载
    public static void main(String[] args) {Test test = new Test();
        int sum1 = test.Sum(1,2);//两数之和
        int sum2 = test.Sum(1,2,3);//三数之和
        System.out.println(sum1);//3
        System.out.println(sum2);//6
    }
}

参数的顺序

public class Test {//类型为double  int
    public double Sum(double x, int y) {return x + y;
    }
    //类型为int  double
    public double Sum(int x, double y) {return x + y;
    }
    //方法名相同,参数顺序不同,构成重载
    public static void main(String[] args) {Test test = new Test();
        double sum1 = test.Sum(1.3,2);//double int
        double sum2 = test.Sum(1,2.1);//int double
        System.out.println(sum1);//3.3
        System.out.println(sum2);//3.1
    }
}

最后,第三点

3. 返回类型:无要求。(可相同,可不同)

在这里插入图片描述
可以看出,仅仅是返回类型不同,编译器会给出警告⚠

如果运行就会出现以下报错
在这里插入图片描述

编译器并不能根据返回类型的不同,来判断这两个方法是否是重载,必须有前两点中的任意一点。

5. 练习细节

void A(int a, char b, double c) {}

以下与A 构成重载的是?

//不必考虑返回类型
	
	//参数类型相同
	//int char double
	//int char double
    void A(int x, char y, double z) {}//不是
    
    //参数类型不同
	//int [char] [double]
	//int [double] [char]
    int A(int a, double c, char b) {}//是

	//参数类型不同
	//int [char] [double]
	//int [double] [char]
    void A(int a, double c, char b) {}//是

	//参数类型不同和个数不同
	//int char [double]
	//int [char] [?]
    boolean A(int c, char b) {}//是

	//参数类型不同和个数不同
	//[int] [char] [double]
	//[double] [?] [?]
    void A(double c) {}//是

	//参数类型想同
	//int char double
	//int char double
    double A(int x, char y, double z) {}/不是

	//方法名不同 A AA
    void AA() {}//不是
尾言

梦想永在凌云意,意气风发。 代码筑就万世基,积沙镇海。

诸君加油(ง •_•)ง

请添加图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

分享题目:【Java中的方法重载(Overload)-创新互联
文章起源:https://www.cdcxhl.com/article26/eohjg.html

成都网站建设公司_创新互联,为您提供服务器托管域名注册网站设计公司微信公众号响应式网站网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设