Java中向方法传参数只有传值一种!

    本文是个总结,欢迎讨论!

    在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。

    首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中的类的实例区域,最后把这个区域的指针赋给类的这个变量。注意,变量中存的是指向对象的指针。

    若是按传址传参数,是要改变这个对象变量所指的内存对象区域,也就是要在方法内把新对象赋给方法外的对象变量。但是,这在Java中办不到。因为Java是把对象变量中的对象指针传入方法,并没有把变量本身的地址传入方法;在方法中,会生成新变量接受这个对象的指针。所以,在Java方法中,可以改变当前对象中的内容,却不能改变方法外边变量的值,即所指向的对象。对于传值、传址的分析就是为了在应用中少犯错误。其他是次要的。

《此位置本有图片,因不能上传,故删除》

 0: public class DemoTest {
 1:   public String x;
 2:   public void setX(String x){
 3:     this.x=x;
 4:   }
 5:   public void test(DemoTest ok){
 6:      ok=new DemoTest(); this.x="333";
 7:   }
 8:   public String getX(){
 9:     return this.x;
10:   }
11:   public static void main(String[] args) {
12:     DemoTest ob = new DemoTest();
13:     DemoTest obp = new DemoTest();
14:     ob.setX("111");
15:     System.out.println("ob.X"+ob.getX());
16:     obp.test(ob);
17:     System.out.println("ob.X"+ob.getX());
18:     ob.test(ob);
19:     System.out.println("ob.X"+ob.getX());
20:   }
21: }

对于上面的程序,要分清楚对象变量和对象实体。

注意在上面的方法调用是一个可能引出错误的调用,不能说明传值和传址的区别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值