值传递

来源:互联网 发布:网络维护实训周报 编辑:程序博客网 时间:2024/05/22 01:45

值传递:调用一个方法的时候,传递给方法的参数,实际上只是传递变量所存储的值。
ex1:


public class Demo1{
public static void main(String[] args) {
int a = 3;
int b = 5;
changeValue(a,b);
System.out.println(“交换之后的值:a = “+a +”, b=”+b);
}

public static void changeValue(int a , int b){
int temp = a;
a = b;
b = temp;
}
}

//这里输出的结果是 交换之后的值:a = 3,b=5


ex2:


import java.util.*;
public class Demo2{
public static void main(String[] args) {

    int[] arr = {23,10,9};    changeArr(arr,1,2);    System.out.println("数的元素:"+ Arrays.toString(arr));

}

public static void changeArr(int[] arr , int index1, int index2){
int temp = arr[index1];
arr[index1] = arr[index2];
arr[index2] = temp;

}

}

//这里输出的结果是 数组元素:[23,9,10]

//以上两个例子为值传递的典型。


ex3:
class Person{

int x =10;

public static void changeObj(Person p ,int x){
p.x = x;
}

public static void main(String[] args) {
Person p = new Person();
changeObj(p,20);
System.out.println(“x = “+ p.x);
}
}
//这里输出的结果x=20

//这是因为执行p.x=x的时候,对于堆内存中原本存储的10进行了修改,改成
//了20,这样在main方法输出的时候,执行p.x是修改后的值。


记住:如果不同的引用类型变量操作同一个对象,那么肯定会影响结果。不要单纯的只记是基本数据类型还是引用数据类型。


0 0
原创粉丝点击