一阶段: JavaSE学习05
方法:(重点,以后经常使用)
方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
方法定义和调用
1.方法必须先创建才可以使用,该过程称为方法定义
2.方法创建后并不是直接可以运行的,需要手动使用后,才执行, 该过程称为方法调用
注意:方法必须先定义,后调用,否则程序将报错
方法调用过程:
总结:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完
之后,会从栈内存中弹栈消失。
使用方法时有两个明确(重点)
1.明确返回值类型
2.明确参数
1.无参数方法:
定义格式:
public static void 方法名 ( ) {
// 方法体;
}
调用格式:
方法名();
2.带参数方法:
定义格式:
public static void 方法名 (参数1) {
方法体;
}public static void 方法名 (参数1, 参数2, 参数3…) {
方法体;
}
注意:
方法定义时,参数中的数据类型与变量名都不能缺少,多个参数之间使用逗号( ,)分隔.
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
形参和实参:
1.形参(全称形式参数):方法定义中的参数
等同于变量定义格式,例如:int number
2.实参(全称实际参数):方法调用中的参数
等同于使用变量或常量,例如: 10 number
3.带返回值方法定义和调用(掌握)
定义格式:
public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
}
调用格式:
方法名 ( 参数 ) ;
数据类型 变量名 = 方法名 ( 参数 ) ;
注意:
1.方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
2.方法的返回值通常会使用变量接收,否则该返回值将无意义
4.方法的通用格式:
public static 返回值类型 方法名(参数) {
方法体;
return 数据 ; //数据类型与返回值类型保持一致
}
/*解释:*/
//public static 修饰符,目前先记住这个格式
//返回值类型: 方法操作完毕之后返回的数据的数据类型 如果方法操作完毕,没有数据返回,这里写void,而且方法体中一般不写return
//方法名: 调用方法时候使用的标识
//参数: 由数据类型和变量名组成,多个参数之间用逗号隔开
//方法体: 完成功能的代码块
//return: 如果方法操作完毕,有数据返回,用于把数据返回给调用者
5.方法的注意事项
注意事项:
1.方法的返回值 必须 和返回值类型类型一致
2.如果方法没有返回值,那么返回值类型必须是void
3. 如果方法没有返回值,那么在方法内部一般不使用return,假如需要使用return,那么return的后面不能带回任意的结果==> return;
细节:
1. 方法不能嵌套定义
2. 方法的返回值类型void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写,如果要写
return,后面不能跟具体的数据
3. return语句下面,不能编写代码,因为永远执行不到,属于无效的代码
4.方法调用:

5. return有两个作用:
1.返回一个结果
2.结束方法,也就是将方法从栈内存中弹出去,该过程称之为方法的弹栈
练习:
/**
* @author 你的大龙猫啊
*/
/*
需求:设计一个方法可以获取两个数的较大值,数据来自于参数
1. 定义一个方法,声明两个形参接收计算的数值,求出结果并返回
2. 使用 if 语句 得出 a 和 b 之间的最大值,根据情况return具体结果
3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
*/
public static void main(String[] args) {
// 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
System.out.println(getMax(10,20)); // 输出调用
int result = getMax(10,20);
System.out.println(result); //赋值调用
}
//方法定义在类中方法外
//定义方法两个明确 1.返回值类型 2.参数
// 方法可以获取两个数的较大值
public static int getMax(int a, int b){
if(a > b){
return a;
}else{
return b;
}
}
}
6.方法的重载:
1.同一个类中
2.方法名相同
3.参数列表不同(个数不同、类型不同、顺序不同),和返回值类型无关
注意:
识别方法之间是否是重载关系,只看在同一个类中的方法名和参数,与返回值无关。
方法参数的传递:
1.方法参数传递为基本数据类型时,形式参数的改变,不影响实际参数 —传入方法中的, 是具体的数值.
每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失
2.方法参数传递为引用数据类型时,形式参数的改变,影响实际参数的值 —传入方法中的,是内存地址.
引用数据类型的传参,传入的是地址值,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈, 堆内存中的数据也已经是改变后的结果
练习:
/**
* @author 你的大龙猫啊
*/
/*
需求:设计一个方法,该方法能够同时获取数组的最大值,和最小值
*/
public class Test3 {
public static void main(String[] args) {
int[] a = {11,33,55,22,44};
int[] mAdnMin = getMaxAndMin(a);
System.out.println("最大值为:"+mAdnMin[0]);
System.out.println("最小值为:"+mAdnMin[1]);
}
/* 方法的两个明确:
1.返回值类型 int[]
2.参数 int[] arr */
public static int[] getMaxAndMin(int[] arr){ //方法名可以自己定义,一般见名知意
int max=arr[0];
for (int i = 0; i < arr.length; i++) {
if(max<arr[i]){
max = arr[i];
}
}
int min=arr[0];
for (int i = 0; i < arr.length; i++) {
if(min>arr[i]){
min = arr[i];
}
}
//把获取到的最大值和最小值放入一个新的数组中
int[] maxAndMin = {max,min};
return maxAndMin;
}
}
本文深入讲解Java中的方法概念,包括方法的定义、调用、参数传递、返回值处理及方法重载等内容,帮助初学者理解方法如何提高代码复用性和模块化。

16万+





