通过上一章学习笔记,知道了将方法看成对象的理论,这一节就着重看看对象作用域的问题
[b]'this', 'super', and 'global'[/b]
在笔记一中,我利用'super'调用一个被定义的方法的作用域外面的一个被覆盖的变量,笔记二中,通过返回this来引用所在方法的作用域,他们使我们能把一个方法的作用域看成一个对象Object,
global是在beanshell的脚本的最上面声明如:
在上面的代码中,我们用beanshell脚本对象命令object()来创建一个空的对象在脚本范围中来制定一些数据.Object()是一个用来创建空对象的方法,上面的"datahoder"拥有脚本的任意作用范围
下面一段beanshell代码将会展示这些关键字和他们所能带来的作用:
[b]'this', 'super', and 'global'[/b]
在笔记一中,我利用'super'调用一个被定义的方法的作用域外面的一个被覆盖的变量,笔记二中,通过返回this来引用所在方法的作用域,他们使我们能把一个方法的作用域看成一个对象Object,
global是在beanshell的脚本的最上面声明如:
// Create a top level object to hold some state
dataholder = object();
foo() {
...
bar() {
dataholder.value = 42;
}
bar();
print( dataholder.value );
}
在上面的代码中,我们用beanshell脚本对象命令object()来创建一个空的对象在脚本范围中来制定一些数据.Object()是一个用来创建空对象的方法,上面的"datahoder"拥有脚本的任意作用范围
下面一段beanshell代码将会展示这些关键字和他们所能带来的作用:
print( this ); // 'this' reference (XThis) to Bsh object: global
// The following cases all synchronize on the same lock
synchronized ( this ) { } // synchronized block
synchronized int foo () { } // synchronized method foo()
synchronized int bar () { } // synchronized method bar()
int gee() {
synchronized( super ) { } // synchronized blockinside gee()
}