对象、引用的关系

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.math.BigDecimal;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.omg.SendingContext.RunTime;


public class Test {
   private Date date;
   private String x;
   public static String m;
  
  
 public String getX() {
 return x;
    }
 static{
  System.out.println("静态默认执行");
 }
 public static void getProperty()
 {
  System.out.println("得到属性值");
 }

public void setX(String x) {
 this.x = x;
}

 public Date getDate() {
 return (Date) date.clone();
}

   public void setDate(Date date) {
 this.date = date;
}

 /**
  * @param args
  * @throws IOException
  */
 public static void main(String[] args) throws IOException {
     Test t = new Test();
      t.setX("a");
     Test t2 = new Test();
     t2.setX("b");
     swap(t,t2);
     System.out.println(t.getX()+"    " +t2.getX());
     //如果传递的是引用的话
     Test tem = new Test();
      tem =t;
      t = t2;
      t2 =tem;
      System.out.println(t.getX()+"    " +t2.getX());
 } 
 public static void swap(Test x , Test y){  // x , y 为分别为上面对象 test@.. 和对象 test@.. 的一个引用,而上面2的t  和 t2 也分别是两个对象的引用,这样的话也就是说现在每个对象分别有两个引用  t 、x    t2、y
  x.setX("xx");
  Test tem = new Test();
  tem =x;
  x =y;
  y = tem;   //交换的只是他们引用的名称
  System.out.println(y.getX());  
 }

}

 

以上说明了 对象可以有多个引用每个对象的引用的名称变化,是不影响对象的情况的,但是对引用的操作即对对象的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值