1.6 方法重载
一、方法的定义
1、方法的格式详解
修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果;
}
- 修饰符: public,private。
- 返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者。
- 参数列表: 方法在运算过程中的未知数据,调用者调用方法时传递。
- 返回值: 将方法执行后的结果带给调用者,方法执行到
return
,整体方法运行结束。
2、定义方法的注意事项
- 定义位置,类中方法外面。
- 返回值类型,必须要和
return
语句返回的类型相同,否则编译失败 。
// 返回值类型要求是int
public static int getSum() {
return 5;// 正确,int类型
return 1.2;// 错误,类型不匹配
return true;// 错误,类型不匹配
}
- 不能在
return
后面写代码,return
意味着方法结束,所有后面的代码永远不会执行,属于无效代码。
public static int getSum(int a,int b) {
return a + b;
System.out.println("Hello");// 错误,return已经结束,这里不会执行,无效代码
}
二、方法重载
1、定义
- 方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
- 参数列表(不同): 个数不同,数据类型不同,顺序不同。
- 重载方法调用: JVM通过方法的参数列表,调用不同的方法。
重载规则:
- 被重载的方法必须形参列表不一样(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 返回值类型不能作为重载函数的区分标准。
最常用的地方就是构造器的重载。(有参和无参构造的重载)
2、例子
main测试
public static void main(String[] args) {
//定义不同数据类型的变量
byte a = 10;
byte b = 20;
short c = 10;
short d = 20;
// 调用
System.out.println(compare(a, b));
System.out.println(compare(c, d));
}
重载类
// 两个byte类型的
public static boolean compare(byte a, byte b) {
System.out.println("byte");
return a == b;
}
// 两个short类型的
public static boolean compare(short a, short b) {
System.out.println("short");
return a == b;
}