- 掌握方法定义的
参数
和返回值
含义
参数:进去的数据叫做参数。
返回值:出来的数据结果叫做返回值。
方法定义的格式:
修饰符 返回值类型 方法名称(参数类型 参数名称, ...) {
方法体
return 返回值;
}
格式解析说明:
修饰符:今天的固定写法两个关键字,public static
返回值类型:也就是方法最终会产生一个什么类型的数据结果。
方法名称:自己随便定义的标识符,规则和变量一样,首字母小写,从第二个单词开始首字母大写。
参数类型:也就是进入方法的数据是什么类型。
参数名称:也是自己定义的标识符,类似于变量名称。
逗号:如果参数有两个或者更多,那么可以使用逗号分隔。如果只有一个参数,不用逗号。如果没有参数,小括号留空即可。
方法体:方法需要执行的代码内容。
return:
(1)一旦执行,当前方法结束。
(2)将后面的返回值交还给方法的调用处。(谁调用了方法,就将结果交给谁。)
返回值:也就是方法最终产生的数据结果。
- 掌握方法的调用过程
- 掌握方法的三种调用形式
单独调用
:
方法名称(参数);
特点:如果有返回值结果,用不上。打印调用
:
System.out.println(方法名称(参数));
特点:直接打印显示返回值赋值调用
:
数据类型 变量名称 = 方法名称(参数);
注意:数据类型必须和方法的返回值类型对应。
// 单独调用
sum(10, 20);
System.out.println("=============");
// 打印调用
System.out.println(sum(5, 8)); // 13
System.out.println("=============");
// 赋值调用
int num = sum(365, 836);
System.out.println("num的值是:" + num); // 1201
}
public static int sum(int a, int b) {
System.out.println("求和的方法执行啦!");
int result = a + b;
return result;
}
- 掌握方法定义的注意事项
- 方法定义前后顺序无所谓。
- 方法的定义不能嵌套包含。
- 方法定义之后必须进行调用才能执行。
- 如果方法没有返回值,那么返回值类型写成void。
- 如果是void方法,那么就不能return一个具体的返回值。
- 如果是void方法,那么最后一行return;可写可不写。
- 对于有返回值的方法,必须保证其中有且仅有一个return语句会被执行到。
- 方法的返回值要么没有是void,要么最多有一个是具体的类型。方法不能有多个返回值。
有无返回值注意事项:
1. 没有返回值的方法,返回值类型固定写成void。
2. 没有返回值的方法,只能单独调用,不能使用打印调用或者是赋值调用。
3. 没有返回值的方法,如果写上了return必须直接分号,而且最后一行return;可以省略。不能return一个具体的返回值。有返回值的方法,必须保证return一个具体的返回值,而且不能省略。
4. 一个有返回值的方法必须保证:有且仅有一个return会被执行到。
错误写法:
return 100;
return 200; // 错误
return 100, 200; // 错误!
- 掌握
方法重载
的概念
概念:多个方法之间,方法名称相同,但是参数列表不同。
重载与下列因素相关:
- 与方法名称相关,必须一模一样。
- 与参数列表相关,必须不一样。【重点】什么叫做参数列表不一样呢?
a.参数个数不同
b.参数类型不同
c.参数的多类型顺序不同
与下列因素无关:
1. 与方法的返回值类型无关
2. 与方法的参数名称无关
调用的时候,谁能匹配上就用谁;谁都匹配不上的话,就会报错。
重载的好处:对于功能类似的方法,只需要记住一个方法名称,随便传参,只要能对上即可。带来便捷性。
System.out.println(sum(10, 20)); // 30
System.out.println(sum(10, 20, 30)); // 60
System.out.println(sum(10, 20, 30, 40)); // 100
// System.out.println(sum(10, 20, 30, 40, 50)); // 错误写法!都不匹配。
System.out.println("================");
System.out.println(sum(1.5, 2.0)); // 两个double
System.out.println(sum(1.0, 3)); // 先double后int
System.out.println(sum(1, 3.0)); // 先int后double
System.out.println("================");
/* println其实就是用到了方法重载的技术,所以任何数据类型都可以作为参数,
进行打印显示。 */
System.out.println(100);
System.out.println(3.14);
}
public static double sum(int a, double b) {
System.out.println("先int后double");
return a + b;
}
public static double sum(double a, int b) {
System.out.println("先double后int");
return a + b;
}
public static double sum(double a, double b) {
System.out.println("有2个double参数的方法执行");
return a + b;
}
public static int sum(int a, int b) {
System.out.println("有2个int参数的方法执行");
return a + b;
}
// 错误写法!重载与参数的名称无关
/*public static int sum(int x, int y) {
System.out.println("有2个int参数的方法执行");
return x + y;
}*/
// 下面是错误写法,重载与返回值类型无关
/*public static double sum(int a, int b) {
System.out.println("有2个int参数的方法执行");
return a + b;
}*/
public static int sum(int a, int b, int c) {
System.out.println("有3个参数的方法执行");
return a + b + c;
}
public static int sum(int a, int b, int c, int d) {
System.out.println("有4个参数的方法执行");
return a + b + c + d;
}