方法重载:
一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这个方法就叫方法重载。
例:
package cn.ensource.overload;
public class MethodOverloadDemo1 {
public static void main(String[] args) {
//目标:认识方法重载,掌握应用场景
test();
test(100);
}
public static void test() {
System.out.println("test1");
}
public static void test(int a) {
System.out.println("test2");
}
}
方法重载的注意事项:
一个类中,只要一些方法的名称相同,形参列表不同,那么它们就是方法重载了,其他的都不管(如:修饰符、返回值类型是否一样都无所谓。)
形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。
package cn.ensource.overload;
public class MethodOverloadDemo1 {
public static void main(String[] args) {
//目标:认识方法重载,掌握应用场景
test();
test(100);
}
public static void test() {
System.out.println("test1");
}
public static void test(int a) {
System.out.println("test2");
}
void test(double a) {
System.out.println("test3");
}
int test(int a, double b) {
System.out.println("test4");
return a;
}
int test(double b, int a) {
System.out.println("test5");
return a;
}
}
以前的笔记:
方法重载是指同一个类中定义的多个方法之间的关系,满足下面两个条件的多个方法构成重载。
1)多个方法在同一个类中;
2)多个方法具有相同的方法名。
3)多个方法的参数不相同,类型不同或者数量不同。
方法重载的应用场景:
开发中,我们经常需要处理一类业务,提供多种解决方案,此时用方法重载来设计是很专业的。
案例导学:
开发武器系统,功能需求如下:
1)可以默认发一枚武器;
2)可以指定区域发射一枚武器;
3)可以指定区域发射多枚武器;
package cn.ensource.overload;
public class MethodOverloadDemo2 {
public static void main(String[] args) {
// 目标:掌握方法重载的应用场景
fire();
fire("美国");
fire("菲律宾", 5);
}
public static void fire() {
System.out.println("默认给岛国发射一枚武器!");
}
public static void fire(String country) {
System.out.println("发射了一枚武器到" + country);
}
public static void fire(String country, int number) {
System.out.println("发射了" + number + "枚武器到" + country);
}
}
Java官方也使用方法重载。
在方法中单独使用return关键字:
return;可以用在无返回值的方法中,作用是:立即跳出来并结束当前方法的执行。
刚才我们做层层拦截的判断中就使用了return;
除数为0,那么就出现异常。那么我们可以使用判断语句,如果判断除数为0,那么就调用renturn;语句,程序结束,结束当前方法的执行。
package cn.ensource.overload;
public class MethodTestDemo {
public static void main(String[] args) {
System.out.println("Start");
chu(10, 0);
chu(10, 2);
System.out.println("End");
}
public static void chu(int a, int b) {
if (b == 0) {
System.out.println("您的数据有误,不执行");
return;
}
int c = a / b;
System.out.println("除法的结果是: " + c);
}
}