Loading

6.Java参数传值原理以及对象的组合

1.参数传值

参数传值是什么意思? 顾明思意,就是把一个变量的数值传给另一个变量。
比如:

int x = 10;
int y = x;
y = 20;

上面的操作是,首先给x赋值,然后将x的值赋给变量y。最后x=10,y=20;
那其中到底是怎么回事呢?
其实在这里的传值(即赋值)所用的值不是x的本值,而是它的拷贝(copy)。
所以不会影响x本来的值。参数y得到的值相当于生活中的”原件“”的“复印件“。
上面的操作其实就是给y开辟了新的内存空间然后将x的值复制到y的内存空间里,所以对y的操作不会对x有影响,这就是参数的传值原理。
同理,引用类型的参数的传的值是地址,地址的数值也是拷贝来的。但是对地址指向的内存空间并没有拷贝。
所以对这个引用类型进行操作会改变其属性,例如:

public class Main {
   
    public static void main(String[] args) {
   
        Person p = new Person();
        p.age = 10;
        System.out.println(p.age);
        Person m = p;
        m.age = 100;
        System.out.println("m.age: "+m.age);
        System
posted @ 2019-10-24 12:05  文牧之  阅读(22)  评论(0)    收藏  举报  来源