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

>>传递基本数据类型:传递给方法体的是一个具体的值,变量的类型属于基本数据类型,
且属于局部变量,存在栈中,执行完该局部变量所在的方法体后,
局部变量占用的内存空间就会销毁,变动的值改变后无法带回来。


>>传递引用数据类型:传递给方法的是一个对象在堆内存中的首地址,
该局部变量所在的内存空间回被释放,变动的值可以带回来,
因为:栈中局部变量在被释放前改变了堆中对象属性的值。
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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值