浅谈理解java方法调用
1、方法调用流程图
2、步骤详解
- 当程序运行时,jvm会自动创建一个所有类的方法表,这里面包含了程序所运行的所有方法。方法表由方法签名和实际调用的方法组成。
- 当对象调用方法的时候,编译器首先找到对象(类)的类型和方法名,去方法表中筛选出来一部分方法。(注意:如果是在类方法中调用该类的方法,例如写成:print()的方法,这里用了隐式参数,this.print())。也就是说每一个方法调用实际上都含有一个对象或者类(static方法)。
- 接下来,编译器查看方法的参数类型,有的方法重载,例如f(int)和f(String),这时编译器会根据参数类型再次筛选出一部分方法。
- 接下来,编译器查看访问修饰符,例如:static、private、final、public、protected等。如果是static就可以直接调用方法。
- 如果是对象调用,判断是否是静态绑定,如果是静态绑定,便可以直接调用方法。如果是动态绑定,如果类中没有该方法,就去父类查找。
还没有评论,来说两句吧...