一.方法的概述二.方法的定义和调用
1.带参数方法的定义和调用2.带返回值方法的定义和调用 三.方法的重载四.方法的参数传递
1. 方法的参数传递基本类型2.方法的参数传递引用类型
一.方法的概述
含义:是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集
方法必须先创建才可以使用,称为方法定义
定义格式:
public static void 方法名(){
//方法体
}
方法创建后,需要使用后才执行,称之为方法调用
方法调用格式:方法名称();
注意:创建方法时,注意与主方法的大花括号,注意调用时方法名称英文字母大小写
- 方法调用图解原理:
二.方法的定义和调用 1.带参数方法的定义和调用
- 带参数的定义的格式:public static void 方法名(参数){…}
单个参数:public static void 方法名(数据类型 变量名称){…};如:public static void 方法名(int a){…}多个参数:public static void 方法名(数据类型 变量名称,数据类型 变量名称,…){…}如:public static void 方法名(int a,int b,…){…}
注意:方法定义时,参数中的数据类型和变量不能缺少;多个参数用逗号隔开
- 带参数的方法的调用:public static void getMax(int a,int b){…}
格式:方法名(参数);单个参数:方法名(变量名/常量值);如:getMax(10)多个参数:方法名(变量值1/常量值1,变量值2/常量值2);如:getMax(10,20)
注意:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配
- 代码案例:
public class MethodDemo1 {
public static void main(String[] args) {
//int a=20;
//int b=50;
getMax(20,50);
}
public static void getMax(int a,int b){
int max=a>b?a:b;
System.out.println("max:"+max);
//形参是我们方法中定义的参数:int a,int b
//实参是我们方法需要传递参数(等同于使用的变量和常量):20,50,a,b
}
}
2.带返回值方法的定义和调用
带返回值方法的定义格式:
public static 数据类型 方法名(参数){
return 数据;
}
如:public static int getMax(int a){
return a;
}
注意:方法定义时return后面的返回值与方法定义上的数据类型要匹配
- 带参数值方法的调用格式;
格式1:方法名(变量/参数)
格式2:数据类型 变量名=方法名(参数);如:int max=getMax(10);
3.代码案例:
public class MethodDemo2 {
public static void main(String[] args) {
int max=getMax(60,100);
System.out.println("最大值:"+max);
}
public static int getMax(int a,int b){
int max=a>b?a:b;
return max;
}
}
注意:方法里面不可以嵌套定义,方法是平级关系;
void表无返回值,可省略return,也可以单独书写return,后面不加数据
方法的通用格式:public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
public static 修饰符 void 返回值类型
参数是由数据类型和变量名组成
方法体为代码块
return如果方法操作完成,有数据返回,用于把数据返回给调用者
三.方法的重载
- 含义:同一个类中定义的多个方法之间的关系满足下面条件:
多个方法在同一个类中多个方法具有相同的方法名多个方法的参数类型不相同,类型不同或者数量不同
- 特点:
重载对应方法的定义,与方法的调用无关重载对同一个类中的名称和参数进行识别,与返回值类型无关
- 代码案例:
public class MethodDemo3 {
//求两个int类型的数据和的方法
//求两个double类型的数据和的方法
//求三个int类型的数据和的方法
public static void main(String[] args) {
int max=num(21,45);
double max1=num(3.14,3.14);
int max2=num(3,5,6);
System.out.println(max);
System.out.println(max1);
System.out.println(max2);
}
public static int num(int a,int b){
return a+b;
}
public static double num(double a,double b){
return a+b;
}
public static int num(int a,int b,int c){
return a+b+c;
}
}
四.方法的参数传递
1. 方法的参数传递基本类型
对于基本数据类型的参数,形参的改变,不会影响实参的值
代码案例:
public class MethodDemo4 {
public static void main(String[] args) {
int number=5;//实参
System.out.println("调用change方法前number(实参):"+number);
change(number);
System.out.println("调用change方法后number(实参):"+number);
}
public static void change(int number){
System.out.println("change中number发生改变前(形参):"+ number);
number=10;
System.out.println("change中number发生改变后(形参):"+ number);
}
}
- 传递基本类型图解原理:
2.方法的参数传递引用类型实参是主方法入口的那个参数,则会在内存中存储这个参数的值,当调口的那个参数,则会在内存中存储这个参数的值,当调用change这个方法的时候会在内存行复制一个实参的值,当这个方法执行完之后jvm会把这个change方法运行时候分配的内存空间回收,相应的形参的值就没了,则在控制台第四个打印的是实参的值
- 对于引用数据类型的参数,形参的改变,会影响实参的值代码案例:
public class MethodDemo5 {
public static void main(String[] args) {
int[] arr={10,20,30};
System.out.println("调用change方法前arr[0]:"+arr[0]);
change(arr);
System.out.println("调用change方法后arr[0]:"+arr[0]);
}
public static void change(int[] arr){
System.out.println("change中改变前的arr[0]:"+arr[0]);
arr[0]=40;//修改arr[0]=10的值 改成arr[0]=40
System.out.println("change中改变后的arr[0]:"+arr[0]);
}
}
- 传递引用类型图解原理:
引用类型的形参的改变影响实参的值,传递的是内存地址,就共用了相同的内存地址值,则形参的改变会影响堆内存中的索引所对应的元素,最后就会影响实参值



