当前位置: 技术问答>java相关
看过thinking in java的达人请近!
来源: 互联网 发布时间:2015-05-22
本文导语: 请问:书中所说的 句柄 是什么意思?还有 什么是 句柄对象??谢谢!大家感觉是不是中文版翻译的太滥了呢??!!!我这么认为! | 在JAVA中,句柄可理解为指向类实例(对象)的一个引用 比如要...
请问:书中所说的 句柄 是什么意思?还有 什么是 句柄对象??谢谢!大家感觉是不是中文版翻译的太滥了呢??!!!我这么认为!
|
在JAVA中,句柄可理解为指向类实例(对象)的一个引用
比如要生成一个新的窗口,语句为: new Frame("Frame Title");
如果我们要它构造后并显示出来,语句为:new Frame("Frame Title").show();
现在试想,以后我们还想为这个对象调用一些方法怎么办,是不是就很困难了?于是我们可以这样:
Frame frame=new Frame("Frame Title");//frame就是指向新Frame实例的句柄
frame.show();//对句柄做方法调用,效果和new Frame("Frame Title").show();是完全一样的,因为frame现在是指向它的句柄
以后,我们还可以方便地利用句柄来进行方法调用:
比如改变窗口的大小:frame.setSize(int i,int j);
也可以让它指向另一个新对象:frame=new Frame("this is a new Frame");
最后我们还可以释放它:frame=null;
比如要生成一个新的窗口,语句为: new Frame("Frame Title");
如果我们要它构造后并显示出来,语句为:new Frame("Frame Title").show();
现在试想,以后我们还想为这个对象调用一些方法怎么办,是不是就很困难了?于是我们可以这样:
Frame frame=new Frame("Frame Title");//frame就是指向新Frame实例的句柄
frame.show();//对句柄做方法调用,效果和new Frame("Frame Title").show();是完全一样的,因为frame现在是指向它的句柄
以后,我们还可以方便地利用句柄来进行方法调用:
比如改变窗口的大小:frame.setSize(int i,int j);
也可以让它指向另一个新对象:frame=new Frame("this is a new Frame");
最后我们还可以释放它:frame=null;
|
举一个比较形象的例子,对象好比一瓶可乐,句柄就是吸管,一瓶可乐可以放几只吸管进去,如果要可乐,就要通过吸管,访问对象,就要通过句柄,在一个方法调用的过程中,如下
public staic void main(String[] args) {
String a = new String("abcd");
System.out.println(a);
// the std out will print "abcd"
dosomething(a);
System.out.println(a);
// still print "abcd"
}
public void dosomething(String s) {
//a and s are two sucker to a coke
System.out.println(s);
// will print "abcd"
s = s.substring(0,1);
//now s is a sucker to another coke,because the method return a new coke
System.out.println(s);
//will print "ab"
}
bw: 我也是一个初学者,希望能够共同学习
public staic void main(String[] args) {
String a = new String("abcd");
System.out.println(a);
// the std out will print "abcd"
dosomething(a);
System.out.println(a);
// still print "abcd"
}
public void dosomething(String s) {
//a and s are two sucker to a coke
System.out.println(s);
// will print "abcd"
s = s.substring(0,1);
//now s is a sucker to another coke,because the method return a new coke
System.out.println(s);
//will print "ab"
}
bw: 我也是一个初学者,希望能够共同学习
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。