定义:方法是一段具有独立功能的代码块,不调用就不执行。
方法的出现提高了方法的复用性
利用debug查看方法的参数传递过程首先上代码以及执行结果
package javabase;
public class test13 {
//主方法一定是程序的入口点
public static void main(String []args)
{
int number = 100;
System.out.println("调用方法前:" + number);
change(number);
System.out.println("调用方法后:" + number);
}
public static void change(int number)
{
number = 200;
}
}
结果:number没有改变
方法参数传递 引用数据类型
package javabase;
public class test14 {
public static void main(String []args)
{
int[] arr = {10,20,30};
System.out.println("调用方法前:" + arr[1]);
change(arr);
System.out.println("调用方法后:" + arr[1]);
}
public static void change(int[] arr)
{
arr[1] = 200;
}
}
使用数组这一引用类型的变量,可以改变数组元素
- 方法没有被调用的时候,都在方法区中的字节码文件中存储
- 方法被调用的时候,需要进入栈内存中运行
所以若干个方法需要执行时,第一个方法最先调入栈内存,但是是最后一个执行完毕
带参数方法的定义与调用
形参:方法中定义的参数
实参:方法在调用时给出的真实数据
ps:方法之间都是平行的 不能嵌套定义
方法的返回值类型为void 表示没有返回值
返回值不能为具体的值
方法名相同,参数不同(参数类型, 参数个数,参数顺序)
虽然方法名相同,但是JVM会根据参数不同调用相应的方法
方法的参数传递
number值没有改变
原因:change里面的Number 和 main方法的NUmber根本就不是一个变量,他们有不同的内存地址,change的number虽然修改了,但是主方法number没有变
如果参数是基本数据类型,传递的只是该变量所记录的具体数值
如果传递引用数据类型,比如数组
使用引用数组类型,变量的地址都是一样的,所以改变变量的值不会失效。
参数为引用数据类型,传递的是内存地址,不是值!



