方法传参,传对象和传对象的属性区别

来源:互联网 发布:搜狗输入法 mac 10.7 编辑:程序博客网 时间:2024/06/11 01:32
>>传递基本数据类型:传递给方法体的是一个具体的值,变量的类型属于基本数据类型,且属于局部变量,存在栈中,执行完该局部变量所在的方法体后,局部变量占用的内存空间就会销毁,变动的值改变后无法带回来。>>传递引用数据类型:传递给方法的是一个对象在堆内存中的首地址,该局部变量所在的内存空间回被释放,变动的值可以带回来,因为:栈中局部变量在被释放前改变了堆中对象属性的值。
class Person{    int age;    String name;    public Person(int age,String name){        this.age = age;        this.name = name;    }    public int addAge(int age){        return age+=1;    }    public int addAge(Person p){        return p.age+=1;    }}Person p = new Pserson(23,"哈哈");int a = p.addAge(p.age);int b = p.addAge(p);//输出的a仍然是23,传的基本数据类型System.out.println(a);//输出的a是24,传的引用数据类型System.out.println(b);
1 0
原创粉丝点击