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());
}
}
以上说明了 对象可以有多个引用每个对象的引用的名称变化,是不影响对象的情况的,但是对引用的操作即对对象的操作。