关于对象引用问题。

oldabc 2007-10-27 02:07:08
1. FileItem fi = (FileItem)i.next();
BaseUpLoadBean upBean = new BaseUpLoadBean();
upBean.getWorkBook( fi.getInputStream());.............................1

2.public class BaseUpLoadBean {
private Workbook myWorkBook = null;
public Workbook getWorkBook (InputStream inp ) throws BiffException, IOException{
myWorkBook = Workbook.getWorkbook(inp);................................2
return myWorkBook
}
}
1...... fi.getInputStream()得到一个流(对象引用)?得到一块内存地址。 然后用upBean对象使用getworkBook方法。返回myworkbook。他有值。返回给myworkbook,证明他有值。

问题1:如果return个myworkbook 为空的话。只是证明myworkbook为NULL吗?


问题2:当操作结束的时候是不是upBean.getWorkBook( fi.getInputStream());.............................1
他的对象引用已经修改成使用该结束以后的样子了。而不是原来对象引用upBean了?


...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldabc 2007-10-28
  • 打赏
  • 举报
回复
周六周日大家都放假了吗 55555~~
oldabc 2007-10-28
  • 打赏
  • 举报
回复
8楼还是说的不清楚 在认真写一下。
1.问题1:如果return myworkbook时候,如果没有得到myworkbook的值,也就是说类中的myworkbook属性跟本没有发生变化。保持原来的NULL 。
2.问题2:当return myworkbook时候,证明myworkbook属性发生变化的时候,他return给myworkbook的时候, private Workbook myWorkBook = null; 其中的myworkbook会发生了变化。比如他属性等用于1000。 相应的,引用对象调用这个类BaseUpLoadBean ,别的方法的时候。这个类会不会让myworkbook的属性一直保持为1000。
3.问题3:BaseUpLoadBean upBean = new BaseUpLoadBean(); .......upBean原来的引用对象 地址XXXXX
upBean.getWorkBook( fi.getInputStream()); ........当属性发生变化的引用对象 他的地址会跟原来一样吗?
如果这个引用对象的内存地址不变的话,引用对象是只负责调用这个方法?




8楼刚才写的思路混,因为太着急写。这个我认真理清思路。
oldabc 2007-10-28
  • 打赏
  • 举报
回复
对不起哦,还是问题 问的有点模糊了。
1.问题1:如果return个myworkbook,如果没有得到myworkbook的值,也就是说他的引用对象中的myworkbook属性跟本没有发生变化?
2.问题2:当return个myworkbook属性,证明myworkbook属性有值的话,他return给myworkbook的时候, private Workbook myWorkBook = null; 其中的myworkbook已经发生了变化。 相应的,他的引用对象的地址是不是也就发生了变化。例如:
BaseUpLoadBean upBean = new BaseUpLoadBean(); .......upBean原来的引用对象 地址XXXXX
upBean.getWorkBook( fi.getInputStream()); ........当属性发生变化的引用对象 他的地址会跟原来一样吗? 如果引用对象的内存地址不变的话,我想引用对象是不是只负责调用这个方法? 还是 fi.getInputStream()这个引用传递发生变化,还是引用对象和参数都会变化?
oracs 2007-10-28
  • 打赏
  • 举报
回复
1.是的
2.当然,是按引用传递的
gongyali2005 2007-10-28
  • 打赏
  • 举报
回复
我感觉这个问题不应该用这个例子.你完全可以看看STRING的不变性.


值传递和引用传递.
lihaifeng0412 2007-10-28
  • 打赏
  • 举报
回复
好郁闷,顶下
Dan1980 2007-10-28
  • 打赏
  • 举报
回复
没有十分看明白你的问题。

1. 据你的理解,“myworkbook为空”与“myworkbook为NULL”的区别是什么?

2. 如果我没理解错的话,是的!upBean被调用getWorkBook()方法以后,自身可能发生了改变(其myWorkBook属性可能已不再是null了)。
oldabc 2007-10-27
  • 打赏
  • 举报
回复
希望大家看到帖子。。
oldabc 2007-10-27
  • 打赏
  • 举报
回复
很感谢这个论坛 这几天问了很多问题 大家都热心解答。谢谢大家,以后我有会的 也会帮助更多的人。
问题问的不清楚 可以给我挑出来 我重新思考用好的语言在表达一次。

62,623

社区成员

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

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