第二章一切都是对象

第二章一切都是对象

ID:30442311

大小:88.95 KB

页数:10页

时间:2018-12-30

第二章一切都是对象_第1页
第二章一切都是对象_第2页
第二章一切都是对象_第3页
第二章一切都是对象_第4页
第二章一切都是对象_第5页
资源描述:

《第二章一切都是对象》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第二章一切都是对象用引用(reference)操纵对象所有这一切在Java里都得到了简化。一切都被视为对象,因此可采用单一固定的语法。尽管一切都"看作"对象,但操纵的标识符实际上是对象的一个"引用"(reference)1。你可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。你只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量时,你实际操控的是遥控器(引用),再由遥控器来调控电视机(对象)。如果你想在房间里四处走走,同时仍能调控电视机;那么你只需携带遥控器(引用)而不是电视机(对象)。此外,即使没有电视机,遥控器亦可独立存在。也就是说,你拥有一个引用,

2、并不一定需要有一个对象与它关联。因此,如果你想操纵一个词或句子,你可以创建一个String引用:Strings;但这里所创建的只是引用,并不是对象。如果此时向s发送一个消息,就会返回一个运行时刻错误。这是因为此时s实际上没有与任何事物相关联(即没有电视机)。因此,一种安全的做法是:创建一个引用的同时便进行初始化。Strings="asdf";但这里用到了Java语言的一个特性:字符串可以用带引号的文本初始化。通常,你必须对对象使用一种更通用的初始化方法。必须由你创建所有对象一旦创建了一个引用,就希望它能与一个新的对象相连接。我们通常用new关键字来实现这一目的。New关键字的意思是

3、"给我一个新对象。"所以前面的例子可以写成:Strings=new第二章一切都是对象用引用(reference)操纵对象所有这一切在Java里都得到了简化。一切都被视为对象,因此可采用单一固定的语法。尽管一切都"看作"对象,但操纵的标识符实际上是对象的一个"引用"(reference)1。你可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。你只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或者减小音量时,你实际操控的是遥控器(引用),再由遥控器来调控电视机(对象)。如果你想在房间里四处走走,同时仍能调控电视机;那么你只需携带遥控器(引用)而不是电视机(对象)。此

4、外,即使没有电视机,遥控器亦可独立存在。也就是说,你拥有一个引用,并不一定需要有一个对象与它关联。因此,如果你想操纵一个词或句子,你可以创建一个String引用:Strings;但这里所创建的只是引用,并不是对象。如果此时向s发送一个消息,就会返回一个运行时刻错误。这是因为此时s实际上没有与任何事物相关联(即没有电视机)。因此,一种安全的做法是:创建一个引用的同时便进行初始化。Strings="asdf";但这里用到了Java语言的一个特性:字符串可以用带引号的文本初始化。通常,你必须对对象使用一种更通用的初始化方法。必须由你创建所有对象一旦创建了一个引用,就希望它能与一个新的对象

5、相连接。我们通常用new关键字来实现这一目的。New关键字的意思是"给我一个新对象。"所以前面的例子可以写成:Strings=newString("asdf");它不仅表示"给我一个新的字符串",而且通过提供一个初始字符串,给出了怎样产生这个String的信息。存储到什么地方程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎样分配的呢?对这些方面的了解会对你有很大的帮助。有六个不同的地方可以存储数据:1.寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部。2.堆栈(stack)。位于通用RAM(random-accessmemory,随

6、机访问存储器)中,但通过它的"堆栈指针"可以从处理器那里获得直接支持。3.堆(heap)。一种通用性的内存池(也存在于RAM区),用于存放所有的Java对象。4.静态存储(staticstorage)。这里的"静态"是指"在固定的位置"(尽管也在RAM里)。静态存储里存放程序运行时一直存在的数据。你可用关键字Static来标识一个对象的特定元素是静态的,但Java对象本身从来不会存放在静态存储空间里。5.常量存储(constantstorage)。常量值通常直接存放在程序代码内部,这样做是安全的,因为它们永远不会被改变。6.非RAM存储(non-RAMstorage)。如果数据完全

7、存活于程序之外,那么它可以不受程序的任何控制,在程序没有运行时也可以存在。特例:基本类型(primitivetype)有一系列类型经常在程序设计中被用到,它们需要特殊对待。你可以把它们想象成"基本(primitive)"类型。之所以特殊对待,是因为new将对象存储在"堆"里,故用new创建一个对象--特别是小的、简单的变量,往往不是很有效。因此,对于这些类型,Java采取与C和C++相同的方法。也就是说,不用new来创建变量,而是创建一个并非是"引用"的"自动"变量。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。