黑马程序员技术交流社区

标题: 形参和实参的问题 [打印本页]

作者: @翱翔@    时间: 2014-1-4 19:50
标题: 形参和实参的问题
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
作者: 快乐的黑马    时间: 2014-1-4 19:56
虽然可以改变对象的属性,但传入到函数时还是一个引用传递,比如:show(int x); 只有当你调用函数时才会传入参数,比如show(5);
作者: daoyua    时间: 2014-1-4 20:58
是引用传递
作者: 净坛使者    时间: 2014-1-4 23:18
作为引用传递
作者: 原子弹    时间: 2014-1-5 01:16
引用传递  传递只是地址
作者: 小小菜鸟    时间: 2014-1-5 18:33
java的引用类型数据包括对象、数组和接口,你所问的传递对象当然是引用类型,所以是引用传递
作者: 小悠久    时间: 2014-1-6 09:47
本帖最后由 小悠久 于 2014-1-6 09:51 编辑

Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。
Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。

作者: black_Dj    时间: 2014-1-6 20:11
  当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有实体的值。在java中,方法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的副本。方法如果改变参数的值,不会影响向参数传值的变量的值。
1.基本数据类型参数的传值:
  向该参数传递的值的级别不可以高于该参数的级别。
2.引用类型参数的传值:
  java引用型数据包括对象、数组以及接口。当参数是引用类型时,“传值”传递的是变量的引用而不是变量所引用的实体。,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。因为两个同类型的引用型变量如果具有同样的引用,就会有同样的实体。但是,改变参数的引用不会影响向其传值的变量的引用。
作者: 苏小惠    时间: 2014-1-6 21:51
这里是引用传递。本质上来说:引用传递和值传递其实传的都是数值。只是引用传递传的是地址值。就像有人给了你房间的地址,你就可操作房间里的东西,而且房间里的东西也会发生改变。而值传递,就只是把数据值给你,你在自己的领域定义了变量来接收和操作,那不会影响到调用者。(把值return回去除外)。一下是内存图请参考
1、引用传递内存图

2.值传递内存图

作者: IT人    时间: 2014-1-6 21:59
引用传递
作者: tf996268809    时间: 2014-1-6 22:52
时地址值的传递
作者: 渐渐不懂了    时间: 2014-1-9 13:16
引用传递




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2