`
只帅一次
  • 浏览: 32535 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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,两个变量包含了相同的引用,改变对象的属性,当然两个变量的值都会变,因为他们本质上是一样的,只是名字不一样而已。

分享到:
评论

相关推荐

    Thinking in Java 中文第四版+习题答案

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    美国爱康诺GENESIS64中文标准培训手册-第四章-设备类和别名.zip

    美国爱康诺GENESIS64中文标准培训手册-第四章-设备类和别名zip,GENESIS64中文标准培训手册-第四章-设备类和别名,包括目标、创建设备类作为模板使用、创建设备类、创建一个多层结构的设备类、在设备中使用别名、如何...

    美国爱康诺GENESIS64中文标准培训手册-第十三章-全局别名.zip

    美国爱康诺GENESIS64中文标准培训手册-第十三章-全局别名zip,GENESIS64中文标准培训手册-第十三章-全局别名,包括架构、定义全局别名、别名解析、主题及其值域的使用、配置主题和全局别名变量、使用全局别名、全局...

    编程实践:Java进阶100例

    第三章:Java基础语法; 第四章:数组的应用; 第五章:面向对象的Java编辑; 第六章:接口与内部类; 第七章:集合的应用; 第八章:异常和反射; 第九章:初识AWT和Swing; 第十章:Swing中的常用组件; 第十一章...

    java 编程入门思考

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    Thinking in java4(中文高清版)-java的'圣经'

    2.8.2 语法 2.8.3 嵌入式HTML 2.8.4 一些标签示例 2.8.5 文档示例 2.9 编码风格 2.10 总结 2.11 练习 第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 ...

    编程思想下篇

    第3章 操作符 3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 3.4 赋值 3.4.1 方法调用中的别名问题 3.5 算术操作符 3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 ...

    Linux Shell编程从初学到精通 第2版

    第3章 正则表达式 43 第4章 sed命令和awk编程 64 第5章 文件的排序、合并和分割 105 第6章 变量和引用 133 第7章 退出、测试、判断及操作符 157 第8章 循环与结构化命令 187 第9章 变量的高级用法 217 第10章...

    Visual C++ 2005入门经典--源代码及课后练习答案

    第3章 判断和循环 101 3.1 比较数据值 101 3.1.1 if语句 102 3.1.2 嵌套的if语句 103 3.1.3 扩展的if语句 105 3.1.4 嵌套的if-else语句 107 3.1.5 逻辑运算符和表达式 109 3.1.6 条件运算符 112 ...

    Android activity-alias别名的使用

    这个工程是使用activity-alias创建应用的别名的Deom,有需要的可以下载

    MDX解决方案(第2版)-中文版.part2.rar

    第1章 MDX入门 第2章 计算成员和命名集简介 第3章 MDX中的通用计算和选择 第4章 MDX查询上下文与执行 第5章 命名集与集的别名 第6章 MDX中的排序和分类 第7章 MDX高级应用 第8章 使用Microsoft Analysis ...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    Java初学者入门教学

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    java联想(中文)

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    极光推送设置别名

    极光推送设置别名

    JAVA_Thinking in Java

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    Thinking in Java简体中文(全)

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第3章 第一个Hibernate应用  3.1 创建Hibernate的配置文件  3.2 创建持久化类  3.3 创建数据库Schema  3.4 创建对象-关系映射文件  3.4.1 映射文件的文档类型定义(DTD)  3.4.2 把Customer持久化类映射到...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 ...

    IDEA-Java集成开发工具-舒适化配置

    - 配置终端快捷键和命令别名,方便快速执行常用操作。 2. 编辑器配置: - 配置编辑器风格和颜色方案,以适应个人喜好。 - 添加代码片段、用户自定义函数或插件,以增加编辑器的功能和效率。 3. Shell 配置: -...

Global site tag (gtag.js) - Google Analytics