Day08_方法
方法入门
概念
方法:就是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
就是一段用{}括起来的代码, 并且起个名字,添加必要的修饰符,方便实用
无参数无返回值的方法定义
- 格式
修饰符 返回值类型 方法名 (参数列表){
代码...
return ;
}
- 定义格式解释:
修饰符: 目前固定写法 public static 。
返回值类型: 目前固定写法 void (方法执行后没有任何结果返回给调用者),其他返回值类型在后面的课程讲解。
方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法。
参数列表: 目前无参数, 带有参数的方法在后面的课程讲解。
return:方法结束,返回到方法调用处。因为返回值类型是void,方法大括号内的return(无返回值类型)可以不写。
无参数无返回值的方法的调用
- 调用格式:
方法名();
method:
无参数无返回值的方法的调用图解
注意
每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。
方法详解
定义方法的格式详解
修饰符 返回值类型 方法名(参数列表){
//代码省略...
return 结果;
}
修饰符: public static 固定写法
返回值类型: 表示方法运行的结果的数据类型,方法执行后将结果返回到调用者
参数列表:方法在运算过程中的未知数据,调用者调用方法时传递
return:(被称为方法的返回值)将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束
定义方法的三个明确
- 明确方法名称:给方法起个名字,方便调用,只要符合标识符规则就可以,尽量做到见名知意
- 明确返回值类型:方法计算的是整数的求和,结果也必然是个整数,返回值类型定义为int类型。(如果需求是需要打印...,就不需要返回值,也不需要返回值类型)
- 明确参数列表:
- 计算哪两个整数的和,并不清楚,但可以确定是整数,参数列表可以定义两个int类型的变量,由调用者调用方法时传递(我用这个方法, 就需要你提供的条件).
- 变量名称: 用来接收方法调用者,调用方法时传递的具体数据的
带参数的方法定义
- 定义格式:
参数:由数据类型和变量名组成 - 数据类型 变量名
如下:
public static void 方法名 (参数1) {
方法体;
}
public static void 方法名 (参数1, 参数2, 参数3...) {
方法体;
}
public static void printSum(int a,int b){
int sum = a + b;
System.out.println(sum);
}
定义方法的参数,对应调用方法 提供的参数
带参数的方法调用
-
调用格式:
方法名(参数);
方法名(参数1,参数2); -
范例:
printSum(5,6);
带参数的方法调用流程图解
形式参数:
定义方法中参数列表里的参数printSum(int a, int b)
实际参数:
调用方法时,提供给所调用方法的参数printSum(num1,num2)
带返回值的方法定义
-
定义格式
public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
} -
范例
public static int getSum(int a,int b){
int sum = a + b;
return sum;
} -
注意
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
带返回值的方法调用
- 调用格式
- 赋值调用(定义一个新的变量来接收返回值)
方法名 ( 参数 ) ;
数据类型 变量名 = 方法名 ( 参数 ) ; -
打印调用(不用任何变量接受,直接打印输出)
-
范例
getSum(5,6);
int result = getSum(5,6); -
注意:
方法的返回值通常会使用变量接收,否则该返回值将无意义
没有返回值的方法的调用
只能使用单独调用
无法使用变量接收或者打印调用
定义方法的注意事项
- 方法不能嵌套定义
public class MethodDemo {
public static void main(String[] args) {
}
public static void methodOne() {
public static void methodTwo() {
// 这里会引发编译错误!!!
}
}
}
- 返回值类型,必须要和 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已经结束,这里不会执行,无效代码
}
- void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
只要方法有返回值类型,方法中有且仅有一条return语句运行
public class MethodDemo {
public static void main(String[] args) {
}
public static void methodTwo() {
//return 100; 编译错误,因为没有具体返回值类型
return;
//System.out.println(100); return语句后面不能跟数据或代码
}
}