什么是句柄什么是句柄对象
2014-04-26 21:34
190 查看
对象(object):
是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是类的实例化。一些对象是活的,一些对象不是。比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。 概括来说就是:万物皆对象。句柄是:
一个标识符,是拿来标识对象或者项目的。它就像我们的车牌号一样,每一辆注册过的车都会有一个确定的号码,不同的车号码各不相同,但是也可能会在不同的时期出现两辆号码相同的车,只不过它们不会同时处于使用之中罢了对象句柄 就是一个对象变量。
每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)?所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。
此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个String句柄:
String s;
但这里创建的只是句柄,并不是对象。若此时向s发送一条消息,就会获得一个错误(运行期)。这是由于s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无论如何都进行初始化:
String s = "asdf";
然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初始化类型。
相关文章推荐
- 什么是对象的句柄?它是指针吗?它是引用吗?它是指向指针的指针?它是什么?
- 什么是对象句柄
- [java语法]基本语法(9)什么是对象句柄
- 什么是对象的句柄?它是指针吗?它是引用吗?它是指向指针的指针?它是什么?
- (转)在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
- 什么是句柄(转)
- java判断一个对象是什么类型
- C++之 什么是对象
- Java中对象序列化的作用是什么
- MFC中获取各个窗体之间的句柄或者指针对象的方法
- JSP的内置对象概述 什么是JSP的内置对象
- 学习笔记之什么是持久化和对象关系映射ORM技术
- .NET对象与Windows句柄(三):句柄泄露实例分析
- 计算科学的根本问题:什么能被有效地自动化,即对象的能行性问题(转)
- 如何在.net开发的代码中遍历所有的图形对象,并判断是什么类型的对象!
- 文件描述符, 指针, 句柄,对象句柄
- (6) 什么是数据对象--每天五分钟学习数据结构
- Java中对象序列化的作用是什么
- 什么情况下用+运算符进行字符串连接比调用StringBuilder对象的append方法连接字符串性能更好?
- Ajax01 什么是ajax、获取ajax对象、ajax对象的属性和方法