Java方法
1. 方法的概述
- 方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。
- 提高代码的复用性。
- 让程序的逻辑更清晰。
public class MethodDemo1 {
public static void main(String[] args) {
// 两个数求和方法
int x = 10,y = 20;
System.out.println(sum(x, y)); // 30
System.out.println(sum(5,6)); // 11
}
public static int sum(int a,int b){
int c = a + b;
return c;
}
}
2. 方法的定义、调用
- 方法的定义:
修饰符 返回值类型 方法名(形参列表){
方法体代码(需要执行的功能代码)
return 返回值;
}
- 方法必须调用才可以跑起来,调用格式:
方法名(...);
- 方法的修饰符:暂时都使用public static修饰。
- 方法申明了具体的返回值类型,内部必须使用return返回对应类型的数据。
- 形参列表可以有多个,甚至可以没有;如果有多个形参,多个形参必须用","隔开,且不能给初始化值。
- 方法定义时:返回值类型、形参列表可以按照需求进行填写。
- 如果方法不需要返回结果,返回值类型必须申明成void(无返回值),此时方法内部不可以使用return返回数据。
- 方法如果没有参数,或者返回值类型申明为void可以称为无参数、无返回值的方法,以此类推。
- 方法使用的常见问题:
- 方法的编写顺序无所谓。
- 方法与方法之间是平级关系,不能嵌套定义。
- 方法返回值类型为void(无返回值),方法内则不能使用return返回数据,如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据。
- return语句下面,不能编写代码,因为永远执行不到,属于无效代码。
- 方法不调用就不执行,调用时必须严格匹配方法的参数情况。
- 有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用一下。
- 方法的调用流程:
- 方法没有被调用的时候,在方法区中的字节码文件中存放。
- 方法被调用的时候,需要进入到栈内存中运行。
3. 方法的参数传递机制
3.1 基本类型的参数传递
- 在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的数据值。
注意:
- 实参:如在方法内部定义的变量。
- 形参:如在定义方法时,"( )"中所声明的参数。
/**
* 目标;理解Java的基本类型的参数传递
*/
public class MethodDemo2 {
public static void main(String[] args) {
int a = 10;
System.out.println("第一次输出" + a); // 10
change(a);
System.out.println("第四次输出" + a); // 10
}
public static void change(int a){
System.out.println("第二次输出" + a); // 10
a = 20;
System.out.println("第三次输出" + a); // 20
}
}
3.2 引用类型的参数传递
- 引用类型的参数传递,传输的是参数存储的地址值。
/**
* 目标;理解Java的引用类型的参数传递
*/
public class MethodDemo3 {
public static void main(String[] args) {
int[] arr = {10, 20, 30};
change(arr);
System.out.println("第三次输出" + arr[1]); // 100
}
public static void change(int[] arr){
System.out.println("第一次输出" + arr[1]); // 20
arr[1] = 100;
System.out.println("第二次输出" + arr[1]); // 100
}
}
4. 方法重载
4.1 方法重载的形式、作用
- 同一个类中,出现多个方法名称相同,但是形参列表是不同的,那么这些方法就是重载方法。
/**
* 目标:识别方法重载的形式。并理解其调用流程,最后需要知道使用方法重载的好处
*/
public class MethodDemo1 {
public static void main(String[] args) {
print();
print("tom");
}
// 无参方法,默认打印Hello World
public static void print(){
System.out.println("Hello World!");
}
// 传递参数
public static void print(String name){
System.out.println("Hello! " + name);
}
}
- 形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称。
- 方法重载的作用:
- 可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择,这是一种专业的代码设计。
return关键字
- return; ------ 可以立即跳出并结束当前方法的执行;return关键字单独使用可以放在任何方法中。
/**
* 目标:明确return关键字的作用。
*/
public class ReturnDemo {
public static void main(String[] args) {
fun(10,0); // 除数不能为0!
fun(10,2); // 5
}
public static void fun(int a,int b){
if (b == 0){
System.out.println("除数不能为0!");
return;
}
int c = a / b;
System.out.println(c);
}
}