posts - 65,  comments - 4,  trackbacks - 0

class
 Dog {   
  String name;   
  
public static void main(String[] args) {   
    Dog d 
= new Dog();// 我知道这段代码就是让d指向了堆中的Dog对象,但书里说smalldog也指向了堆中的同一个Dog对象   
    d.go(d);   
  }   
  
void go(Dog smalldog) {   
    smalldog.setName(
"wangcai"); // 是这里让smalldog也指向了Dog对象吗?明明没有等号嘛,谁能解析一下吗?没有等号也能让smalldog指向Dog对象?我很笨的   
  }   
  
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张纸,但是他们上面写的狗的地址是相同的。 

希望你能明白,引用就是复制了一份地址。
Tag标签: Java
posted on 2008-06-18 13:24 李小鱼 阅读(12) 评论(0)  编辑 收藏

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: