| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 500 人关注过本帖
标题:一段关于对象引用的形象解释
只看楼主 加入收藏
lampeter123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:54
帖 子:2508
专家分:6424
注 册:2009-1-30
结帖率:90.32%
收藏
 问题点数:0 回复次数:1 
一段关于对象引用的形象解释
我们先看一段代码

class Dog ...{
  String name;
  public static void main(String[] args) ...{
    // 我知道这段代码就是让d指向了堆中的Dog对象,但书里说smalldog也指向了堆中的同一个Dog对象
    Dog d = new Dog();
    d.go(d);
  }
  void go(Dog smalldog) ...{
    // 是这里让smalldog也指向了Dog对象吗?明明没有等号嘛,谁能解析一下吗?
    // 没有等号也能让smalldog指向Dog对象?我很笨的
    smalldog.setName("wangcai");
  }
  void setName(String dogname) ...{
    name = dogname;
  }
}
引用变量d  
引用变量smalldog  

smalldog=d  
那么smalldog也指向d所指向的对象,是吗?那么我的这个推理,这个推理该用什么理论来解释呢,或者定义什么的,谁让我消化消化啊


我的解释:  
1 Dog 是一致狗  
2 我再一张纸上写了他的地址,从这个地址肯定能找到它。 这张纸叫d  
3 我朋友也想看看这个狗,我就又写了一张纸,一次性使用的,上面写的相同的地址,这张纸叫 smalldog  
4 我朋友根据smalldog的地址,找到了狗,并给狗改了名字 setName();  
5 我朋友离开了,那个smalldog 纸片也就自动销毁了(smalldog 是一个函数变量)  
6 可是,我的那张纸d, 上面依然写着那个狗的地址  

7 请注意,我的纸 和 我朋友的纸是完全不同的2张纸,但是他们上面写的狗的地址是相同的。  

个人理解,引用就是复制了一份地址。



本文来自CSDN博客,转载请标明出处:http://blog.
搜索更多相关主题的帖子: 形象 对象 解释 
2010-01-08 17:53
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
支持

C#超级群 74862681,欢迎大家的到来!
2010-01-09 18:32
快速回复:一段关于对象引用的形象解释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019384 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved