java 对象的句柄,调用同一个方法的时候,内部的处理

class Test {
    void aa(int i) {} }
    Test t1 = new Test(), t2 = new Test();
    t1.aa(1);
    t2.aa(2);
方法只有一个aa(),这个方法是怎么知道自己是用t1还是t2调用的呢
答案是编译器为我们完成了一些幕后工作
实际上,编译器是这样调用的
Test.aa(t1,1);
Test.aa(t2,2);
这是内部的表达形式,但我们是不能这样写的,编译器根本不认

黑色头发:http://heisetoufa.iteye.com/

猜你喜欢

转载自heisetoufa.iteye.com/blog/1618474