thinking in java <方法调用绑定> 上面说:
将一个方法调用同一个方法主体关联起来被称作“绑定(binding)”
上面是原话。
应该怎么理解”关联起来“呢?怎么关联?请大家明示!!
这种绑定说白了,也就是依赖别一个对象,然后调用那个对象的一个方法而已,没必要这么抠字眼,理解就行
Thinking In Java中所谓的绑定就是方法之间调用所确立的关系,如方法Hello()中调用方法Go(),它们之间就绑定一起拉。
怎么关联:一个方法主体通过调用其他方法,比如下面main()方法里调用了referMethod();这样referMethod();方法就绑定在main()方法里了..
public static void main(String[] args){
referMethod();
}
static void referMethod(){
.....
}
其中main()方法是方法主体,
referMethod();方法是被调用方法
orz...
binding音译为“绑定”,也翻译为“约束”,主要是指名字与一些属性之间的关系的确立。例如Java里声明一个局部变量,那么在声明那个变量的方法被调用的时候,那个变量(的名字)就与一块存储空间关联在一起;这就是“绑定”的一种形式。
对方法调用而言,“绑定”就是指在某个调用点(call site)上通过某个名字来调用方法,具体与哪个实现版本关联在一起的问题。例如这样:
[code="java"]class Base {
public void foo() {
// ...
}
}
class Derived extends Base {
@Override
public void foo() {
// ...
}
}
public class Program {
public static void main(String[] args) {
A a = getAInstance();
a.foo(); // which foo() ?
}
private static A getAInstance() {
return new B();
}
}[/code]
那么在Program.main()里,a.foo()这个调用点上,实际“绑定”的就是B.foo()。这种要等到运行时才能够确定绑定目标的特征,称为“迟绑定”(late-binding)。Java里的非私有的成员方法都是虚方法,在调用它们的时候,调用点都是迟绑定的。另外,由于支持类的动态加载,即便不是虚方法,概念上说在Java中方法调用的绑定也要等到运行时才可以确定。