Chinaunix首页 | 论坛 | 博客
  • 博客访问: 24132
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 134
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 15:58
文章分类

全部博文(17)

文章存档

2014年(17)

我的朋友

分类: Java

2014-05-22 09:48:07

Java里面对象的传递是通过对象的引用,而引用又是用变量名表示的,但是注意变量名不是引用本身。如下示例程序:
变量c的重新赋值并不影响之前表示的引用(对象)。
Java代码  收藏代码
/* 
* @(#)PassedReferenceWillNotChange.java    2014年5月7日 

* Copyright (c) 2014 Wu Owen. All rights reserved. 
*/  

package com.labj.main;  

/** 
* Passed object c is stored in B, when c is assigned to another object, object stored in B will not 
* change. 
*  
* @author owen 
*/  
public class PassedReferenceWillNotChange {  

    public static void main(String[] args) {  
        C c = new C(1);  
        B b = new B(c);  
        System.out.println("A.f()");  
        c = new C(2);  
        // b.setC(c);  
        b.g();  
    }  
}  

class B {  
    C c;  

    public B(C c) {  
        this.c = c;  
    }  

    void g() {  
        System.out.println("B.g()");  
        System.out.println("c.getId(): " + c.getId());  
    }  

    void setC(C c) { 
        this.c = c;  
    }  
}  

class C {  
    int id;  

    public C(int id) {  
        this.id = id;  
    }  

    int getId() {  
        return id;  
    }  
}  
阅读(293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~