P2-7-2:方法的重载
我们本节课重点讲方法,先讲方法的重载
什么叫方法的重载呢?方法的重载总结下来就是这么一段话:
方法名相同,参数个数或参数类型不相同
注意,重载跟方法的返回类型没关系
我们举个例子,现在我们想写一个可以返回两个整型变量之和的方法sumInt
可以看到,我们很轻松就写出来, 但是问题就是这个方法只能用于两个整型变量的计算,
如果换成其他类型的变量就用不了
那么我们这时候又想得到两个浮点数之和就只能再写一个方法:
于是程序就变成了这样:
我们看到,虽然能正常运行,但是这就会显得很麻烦,因为数据类型有那么多,
我们不可能为每个类型都专门写一个这样的相加方法,这样一点效率都没有
于是,我们就用到了方法的重载
重载的规定就是: 函数名可以一样,但是函数的参数类型可以不一样
java允许我们这么做,在java里,方法具有重载性,
即允许方法可以重名,并且还允许方法的参数类型可以不一样
现在我们就采用函数重载的方式来优化上面的代码:
可以看到,方法名都一样,但是形参类型不一样,并且最后的运行结果也正常
这样就大大提高了方法的复用性,重载的方法会自动识别我们输入的参数的类型,
然后判断该用哪一个重载方法
重载这个功能是非常强的,java里的很多方法都有运用到,
例如我们之前学的Arrays包里的sort方法,为什么它不管是byte类型,char类型,
int类型还是long类型的数都可以照常排序呢?
就是因为它的逻辑代码里用了重载功能
我们可以看到,Arrays包里的sort函数就用了方法的重载,即方法名相同,但参数类型不同,
所以sort方法可以接受各种类型的值然后给它们排序,
我们不管传入什么类型的参数,都有对应的重载方法给我们排序,这就是重载的好处
并且重载并不止局限于 参数类型不同,就算方法的参数类型相同,
但参数数目不同,那也算重载:
所以重载的性质就可以总结成以下内容:
方法名相同,参数个数或参数类型不相同
重载跟方法的返回类型没关系,只跟 方法名以及参数 有关系,
也就是说,方法名一样并且参数个数/参数类型不一样,那就是重载方法
重载的好处就是提高同一个方法的复用性,我们可以传各种类型的数据给一个重载方法,
这个重载方法都有对应的处理方法