java编程思想练习题-第3章练习2-别名现象

题目:创建一个包含一个float域的类,并且用这个类展示别名机制

分析:别名机制,听起来很陌生,其实在讲一个很简单的事情。首先来谈一下引用的概念。

我们在操作一个类的时候,我们真正操作的是它的引用。我们可以把它的引用赋值给不同名字的变量,这就构成了别名。因为不同的名字包含着相同的引用。

class Tube {
	float level;
}

public class test {
	public static void main(String[] args) {
		Tube t1 = new Tube();
		Tube t2 = new Tube();
		t1.level = 0.9f;
		t2.level = 0.47f;
		System.out.println("1: t1.level: " + t1.level + ", t2.level: " + t2.level);
		t1 = t2;
		System.out.println("2: t1.level: " + t1.level + ", t2.level: " + t2.level);		
		t1.level = 0.27f; 
		System.out.println("3: t1.level: " + t1.level + ", t2.level: " + t2.level);
	}
}

 输出为:

1: t1.level: 0.9, t2.level: 0.47
2: t1.level: 0.47, t2.level: 0.47
3: t1.level: 0.27, t2.level: 0.27

 我们可以看到第一行输出是不同的,因为t1和t2包含的是不同的引用。第二行是相同的因为执行了t1=t2,两个变量包含了相同的引用,改变对象的属性,当然两个变量的值都会变,因为他们本质上是一样的,只是名字不一样而已。

猜你喜欢

转载自buptchj.iteye.com/blog/2247410
今日推荐