Java方法的调用(值传递和引用传递)
系列文章目录
文章目录
- 系列文章目录
- Java方法的调用
- 一. 静态方法
- 二.非静态方法
- 三.实际参数和形式参数
- 四.值传递和引用传递
- 1.值传递
- 2.引用传递
Java方法的调用
一. 静态方法
静态方法调用:类名.方法名;
二.非静态方法
1.实例化 new
2.对象类型 对象名 = 对象值
三.实际参数和形式参数
四.值传递和引用传递
1.值传递
方法调用时,实际参数把它的值传递给对应的形式参数,函数接收的是原始值的一个copy,此时内存中存在两个相等的基本类型,即实际参数和形式参数,后面方法中的操作都是对形参这个值的修改,不影响实际参数的值。
- 实参:方法被调用时传入的实际值,它在方法被调用前就已经被初始化,并且在方法被调用时传入。
- 形参:方法被调用时传入的参数,如:func(int a)中的a,只有在func被调用期间a才有意义,也就是会被分配内存空间;在方法func执行完成后,a就会被销毁释放空间,也就是不存在了。
//值传递
public class Demo10 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);
Demo10.Change(a);
System.out.println(a); //形参只是实参创建的一个副本,副本改变了,原本当然不可能跟着改变;
}
public static void Change(int a){
a=10; //形参 无法改变 实参
//方法里面的a和main方法里面的a 不是同一个a
}
}
2.引用传递
”引用”也就是指向真实内容的地址值。在方法调用时,实参的地址通过方法调用被传递给相应的形参,在方法体内,形参和实参指向同一个内存地址,对形参的操作会影响真实内容。
public class Demo11 {
public static void main(String[] args) {
Person pr = new Person();
System.out.println(pr.name);
Demo11.change(pr);
System.out.println(pr.name);
}
public static void change(Person pr){
// pr 是一个对象
pr.name="仇振杰";
}
}
//定义一个Person类
class Person{
//属性:字段
String name;
}