JAVA——用引用操纵对象
2018-01-23 本文已影响0人
CodeForCoffee
以下内容选自《Thinking in JAVA》第4版
每种编程语言都有自己的操纵内存中元素的方式。有时候,程序员必须要注意要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(例如C和C++里的指针)
所有这一切在JAVA里得到了简化,一切都被视为对象,因此可以使用单一固定的语法。尽管一切都被视为对象,但操纵的标识符实际上是对象的一个“引用”。
可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。只要握住这个遥控器,就能保持与电视机的连接。当需要更换频道的时候,你实际操作的是遥控器(引用),再由遥控器来调控电视机(对象)。如果你想在房间里四处走走,那么记得带好你的遥控器(引用),再由遥控器来控制电视机(对象),而不是随身带着电视机。
此外,即使没有电视机,遥控器同样可以独立存在。也就说,你拥有一个引用,并不需要有一个对象与其关联。
如果你想操纵一个词语或者句子,你可以先创建一个引用:
创建一个引用注意这里所创建的只是引用,而不是对象。如果此时向s发送一个消息(可以将消息理解为,对某个特定对象的方法的调用请求),就会返回一个运行时的错误。这是因为s没有和任何事物关联(电视机)。因此一种安全的做法是,创建一个引用的同时,进行初始化:
创建引用的同时利用JAVA语言特性初始化但是这里用到了JAVA语言的一个特性,字符串可以用带引号的文本初始化。通常,必须对对象采用一种更加通用的初始化方法。
一旦创建了一个引用,就希望它能与一个新的对象相关联。通常用new操作符实现这一目的。New关键字的意思就是“给我一个对象”,所以前面的例子可以写成:
创建一个新的引用并将其与新的对象关联它不仅表示 “给我一个新的字符串”,而且通过提供一个初始化字符串,给出了怎样产生这个String的信息。