每种编程语言都有自己的数据处理方式有些时候程序员必须时刻留意准备处理的是什么类型您曾利用一些特殊语法直接操作过对象或处理过一些间接表示的对象吗(C或C++里的指针)? 所有这些在Java里都得到了简化任何东西都可看作对象因此我们可采用一种统一的语法任何地方均可照搬不误但要注意尽管将一切都看作对象但操纵的标识符实际是指向一个对象的句柄(Handle)在其他Java参考书里还可看到有的人将其称作一个引用甚至一个指针可将这一情形想象成用遥控板(句柄)操纵电视机(对象)只要握住这个遥控板就相当于掌握了与电视机连接的通道但一旦需要换频道或者关小声音我们实际操纵的是遥控板(句柄)再由遥控板自己操纵电视机(对象)如果要在房间里四处走走并想保持对电视机的控制那么手上拿着的是遥控板而非电视机 此外即使没有电视机遥控板亦可独立存在也就是说只是由于拥有一个句柄并不表示必须有一个对象同它连接所以如果想容纳一个词或句子可创建一个String句柄 String s; 但这里创建的只是句柄并不是对象若此时向s发送一条消息就会获得一个错误(运行期)这是由于s实际并未与任何东西连接(即没有电视机)因此一种更安全的做法是创建一个句柄时记住无论如何都进行初始化 String s = asdf; 然而这里采用的是一种特殊类型字串可用加引号的文字初始化通常必须为对象使用一种更通用的初始化类型 |