概述
在引入方法的重载概念之前,我们先来了解一下类的构造方法的相关概念。在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象的时候,类都会自动调用构造方法。
构造方法的特点如下:
- 构造方法没有返回值;
- 构造方法的名称要与本类的名称相同。
注意:如果在类中定义的构方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,也就是说,只要程序员自定义了构造方法,那么编译器将不会设置默认的构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。所以说只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。
方法重载的概念
从前面的概述可以知道,构造方法的名称已经由类名决定,所以构造方法只有一个名称,但是如果希望以不同的方式来实例化对象,就需要使用多个构造方法来完成。由于这些构造方法都需要根据类名进行命名,为了让方法名相同而形参不同的构造方法同时存在,必须用到“方法重载”。虽然方法重载源于构造方法,但是它也可以应用到其它方法中。
什么时候需要使用方法的重载呢?
在同一个类中,如果存在“功能1”和“功能2”它们的功能相似,那么可以考虑将它们的方法名设置为一样的,这样可以使得整体的代码看起来比较美观,同时易于后期代码的记忆编写。
Tips:方法重载并不可以随意使用,如果两个功能根本不相似,一点关系都没有,那么将其编写为方法重载的时候只会导致编码更加麻烦,不利于后期代码的编写。
方法重载的条件是什么?
条件1:在同一个类当中
条件2:方法名相同
条件3:参数列表不同
⬇⬇⬇
- 参数的个数不同算不同;
- 参数的类型不同算不同;
- 参数的顺序不同算不同。
只要同时满足以上三个条件,那么我们就可以认为某两个方法发生了重载机制。
Tips:方法重载和方法的”返回值类型“无关;方法重载和方法的”修饰符列表“无关。
看完本期博客你需要思考的问题有:
//前提条件:下列方法在同一个类当中
public static int method1(int a){
return a;
}
public static int method1(int a,int b){
return a+b;
}
//method1构成了方法重载吗?
//前提条件:下列方法在同一个类当中
public static int method2(int a){
return a;
}
public static void method2(int a){
}
//method2构成了方法重载吗?
Tips:下期博客会有完整解答哦。
以上内容均为个人学习的一点心得,其中的知识点若有错误请留言提醒,若有侵权内容提醒马上删除。