java 板


※ 引述《[email protected] (喵喵小雷猫)》之铭言: : ※ 引述《[email protected] (Null)》之铭言: : : 各位大大: : : 如标题所示,没有人可以帮忙举例来说明呢? : : 或则哪里有正确的文章可以参照呢? : 众多书藉上没有统一的答案 : 这两个答案都可以, 看你以什麽角度去解释 : 以programming language的角度来说, java可以说是call by reference : 因为java不具有pointer的位置运算能力 ......................................................... 就我看的 programming language 的书, java 是 call-by-reference, 除了一些非严谨的说法, 无论是 java 正式的 tutorial, 规格书里, 都是讲 java 是 call-by-reference . http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8 &threadm=48K1We%24AWO%40bbs.ee.ntu.edu.tw&rnum=1&prev= /groups%3Fq%3Dpass-by-reference%2520eightcloud %26hl%3Dzh-TW%26lr%3D%26ie%3DUTF-8%26sa%3DN%26tab%3Ddg 寄件者:岚云 ([email protected]) 主旨:java 没有 pass-by-reference 那麽另人难接受吗? View: Complete Thread (共 7 条留言) Original Format 网上论坛:tw.bbs.comp.lang.java 日期:2003-09-17 23:58:19 PST pass-by-xx 是 progamming lanuague 里, 有关参数传递方式的一种分类, 就那分类的定义, java 没有 pass-by-reference, 而是 pass-by-value, 不管是 java 的技术文件也好, java 的 tutorial 也好, (前面都有给过 URL) 都说 java 没有 pass-by-reference, 而是 pass-by-value, 这那麽另人难接受吗? 再从 PL 定义来看 java 的机制, Programming language 对 pass-by-refernece 的定义. " Pass by reference is a second implementation model for inout-mode parameters. Rather than transmittting data values back and forth, however, as in pass-by-value-result, the pass-by-reference method transmits an access path, usually an addesss, to the called subprogram. This provides the access path to the cell storing the actual parameter. Thus the called subprogram is allowd to acesss the actual paramter in the calling program. In effect, the actual parameter is shared with the called subprogram. " java 文件 http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html 4.5.2 Variables of Reference Type A null reference A reference to any object (§4.3) whose class (§4.5.6) is assignmen t compatible (§5.2) with the type of the variable 4.3.1 Objects An object is a class instance or an array. The reference values (often just references) are pointers to these objects, and a special null reference, which refers to no object. java reference type 的 variable(变数), 存的是一个 reference value, 指到 object, 也就是 recerence type variable 的 value 是指到一个 object. 改变一个 refernce type 的 variable 的值, 意义是那个 variable 指到不同的 object, 而不是改变 object 里的内容. 当做 methoad call 时, 参数(actual parameter) 是 refernce type 的 variable 时, ( "the pass-by-reference method transmits an access path, usually an addesss, to the called subprogram." ) java 在 method call , 有没有 pass 那个 variable 的 access path, 到被呼叫的 method 里? 没有. java 是把 variable 的值, 指到 object 的那个 reference value 传到 method 里. 只是 pass-by-value, 让在 method call 里, 那个参数变数的 value 等於 actual parameter 的 value, 也就是让 method call 里的变数所指向的 object, 等於是 actual parameter 上那个变数所指向的 object 是同一个. 是把变数的值传进去, 该二个变数指向同一个物件. "This provides the access path to the cell storing the actual parameter" java 在 method 里, 有没有办法去 access 到 actual parameter? 那个 refernce type 的 variable? 不能. java 只是能 access 到 actual parameter 的值, 所指到的 object, 而不是能 access 到 actual parameter 的那个 variable. 也就在 method call 里, 无法去改变 actual parameter 的值, 也就是, 无法让 actual parameter 的变数, 指到不同的 object. ( 在 c 里, 还有个 & 的 operator, 可以取到一个 variable 的 "access path", 所以利用 &, 可以把一个 varialbe的 access path 取出来, 成为模拟 pass-by-reference, 有人称之为 explicit pass-by-reference. 但是, 那个还是不叫 pass-by-refernce, 因为 actual parameter 是 &variable, 不是 variable. pass 的 是一个 variable 的 unary operator 运算结果的一个 value. 更不用说, 在 java 根本没有任何方式可取到一个 variable 的 "access path". ) -- ※ Origin: 鸟窝 (BirdNest.twbbs.org) ◆ From: 61-62-68-135-adsl-tpe.STATIC.so-net.net.tw







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草
伺服器连线错误,造成您的不便还请多多包涵!
「赞助商连结」






like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP