方法是程序中最小的执行单元。
最简单的方法定义格式:
public static void 方法名(){
方法体(就是打包起来的代码);
}
最简单的方法的调用:
方法名()
带参的方法定义:
public static void 方法名(参数){ ……}
带参的方法的调用:
方法名(参数)//方法调用时,形参和实参必须一一对应,否则报错。
带返回值的方法定义:
方法的返回值其实就是方法运行的最终结果。
- 如果在调用处要根据方法的结果去编写另外一段代码逻辑
- 为了在调用出拿到方法产生的结果,就需要定义带有返回值的方法
格式:
public static 返回值类型 方法名(参数){
方法体;
return 返回值;
}
调用:
- 直接调用:方法名(实参);
- 赋值调用:整数类型 变量名 =方法名(实参);
- 输出调用:System.out.println(方法名(实参));
方法的注意事项:
- 方法不调用就不执行。
- 方法与方法之间是平级关系,不能互相嵌套定义。(即不能把一个方法写在另一个方法內部,会出现语法错误)
- 方法的编写顺序与执行顺序无关。
- 方法的返回值为void,该方法无返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体的数据(return在此时只表示结束方法)
- return语句下方不能编写代码,因为永远执行不到,属于无效的代码。
return关键字
- 方法没有返回值,可以省略不写。如果书写,表示结束方法。
- 方法有返回值,必须书写。表示结束方法和返回结果。
方法的重载
- 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。
- 每个方法具有不同的参数类型或参数个数,这些同名的方法就构成了重载关系
- 与返回值无关
//下面的方法构成重载
public class Method {
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
方法的内存
Java内存分配:
-
栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈
-
堆:new出来的,都在堆内存中开辟了一个小空间
-
方法区:存储可以运行的class文件
-
本地方法栈:JVM在使用操作系统功能的时候使用
-
寄存器:给CPU使用
方法调用的基本内存原理:方法被调用后就会进栈执行,先进后出
基本数据类型:整数类型,浮点数类型,布尔类型,字符类型。
变量中存储的是真实的数据
数据值存储在自己的空间中
特点:赋值给其他变量,也是赋的真实的值
int a=10;
int b=a;
引用数据类型:除了基本数据类型外的所有数据类型。
变量中存储的是地址值
数据值存储在其他空间中,自己空间中存储的是地址值
特点:赋值给其他变量,赋的地址值
int[] arr1={1,2,3};
int[] arr2=arr1;
方法传递基本数据类型的内存原理
传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。
//形参改变,不影响实际参数值
public class test2{
public static void main(String[] args){
int result=97;
System.out.println("调用前:"+result);
change(result);
System.out.println("调用后:"+result);
}
public static void change(int result){
result=result+3;
}
}
/*结果:调用前:97
调用后:97
如需改变实参需进行return返回值
*/