基础很重要?谁说的???(散分)

yqj2065 2008-11-11 08:43:13
基础很重要?谁说的???


参见:
http://topic.csdn.net/u/20081110/23/9eeaeaab-c814-4c35-a9e1-d1f501febc74.html

BTW:我也没有多少分,散一点表示表示。今天结贴。非1111请自觉,不要jf
...全文
148 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
bruni 2008-11-12
  • 打赏
  • 举报
回复
4、为什么“按引用传递”是错误的?[不要讨论它错误之处,而是问一问他们的思路为什么错误】?
传引用是因为你能而且你想改变传入的参数.
传值, 是因为java对于primitive type就是传值的.
既然你不想发明轮子, 就尽可能的利用轮子, 因为轮子可以滚, 而你自己可能发明的方形轮子不能滚.

据个例子, 为什么一个函数的返回只能是void 或者是一个primitive/object
因为他已经是那样了
你想返回两个primitive就是不行
在这个时候你想返回(其实是改变多个返回值), 那么你就用object, 就返回object (因为他是传引用)

就这么简单, 简单就好.

guzhuyizhi23 2008-11-12
  • 打赏
  • 举报
回复
都很重要啊
  • 打赏
  • 举报
回复
引用是一种人为的概念,实际上在内存存放的是另一块内存的地址。

传值还是传引用,我感觉应该是看问题不同的方式罢了,对于基本类型来说,
内存中存放的是基本类型的值,对于对象类型来说,内存中存放的是对象在
内存中的首地址。

对于传递参数来说,形式参数将所传入变量中的值取出进行操作的,对于基
本类型来说取出来的是实际的值,而对于引用类型来说取出来的则是对象的
首地址。
yami251139 2008-11-11
  • 打赏
  • 举报
回复
最重要的是为什么用这个
而不是这个怎么用。。。
qiandongbo 2008-11-11
  • 打赏
  • 举报
回复
知道~老打错别字~
qiandongbo 2008-11-11
  • 打赏
  • 举报
回复
爱杂说就杂说,直接怎么用以及为啥这么用就行了被~
yqj2065 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yami251139 的回复:]
细节是很重要,但钻牛角尖就没意思了
有些不是直接发生再身边的错误,是很难找到原因的。
反正每个人理解不一样,没必要去研究那些确定的错误
[/Quote]

你考虑你自己,怎样都行。
我刚刚学Java,左手TIJ,右手JLS,前者pass by ref,后者pass by value。
问老师A,pass by value,
问老师B,pass by ref,
问你,钻牛角尖就没意思
问别人,基础很重要
……
我撞豆腐算了
yami251139 2008-11-11
  • 打赏
  • 举报
回复
细节是很重要,但钻牛角尖就没意思了
有些不是直接发生再身边的错误,是很难找到原因的。
反正每个人理解不一样,没必要去研究那些确定的错误
yqj2065 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java2000_net 的回复:]
已回复,房子当然可以搬来搬去的,只不过是复制了一个房子搬过去,不是把以前的搬过去而已。
[/Quote]
已回复,你的解释不对。
yqj2065 2008-11-11
  • 打赏
  • 举报
回复
散分贴,1111就两个字:
jf
老紫竹 2008-11-11
  • 打赏
  • 举报
回复
已回复,房子当然可以搬来搬去的,只不过是复制了一个房子搬过去,不是把以前的搬过去而已。
  • 打赏
  • 举报
回复
"基础很重要?谁说的??? "
你说的是你给的帖子里面的地址上各楼朋友
你那个问题是java参数传递问题
ZangXT 2008-11-11
  • 打赏
  • 举报
回复
楼主的博客不错。
ZangXT 2008-11-11
  • 打赏
  • 举报
回复
什么是基础?呵呵。
其实很多人都知道原理,只是有可能混淆一些术语,对编程,做项目无任何影响。
laorer 2008-11-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ZangXT 的回复:]
4、为什么“按引用传递”是错误的?[不要讨论它错误之处,而是问一问他们的思路为什么错误】?
其实关键问题就是这个术语的定义: In programming language design, the term pass by reference properly means that when an argument is passed to a function, the invoked function gets a reference to the original value, not a copy of its value.
java中明显处理的是copy,而不是原来的引用本身,从这个角度说,“pass by reference”这个术语是不合适的。

但我想问题还是出在java设计时的术语选择上,比如Object obj;把这个obj称为“引用”,同时强调传参数时不是"pass by reference",本身就怪怪的。

[/Quote]

没有传址, 如果有传址的话,



obj arg = new Object();//1
fun(arg);
如果是传址的话, arg 将是 2, 如果是传值的话, arg 还是1, 你可以改变 arg 1面的状态, 但他还是1
....
fun( arg){
arg = new Object();//2
}

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧