iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java对象方法的调用执行过程详解
  • 383
分享到

Java对象方法的调用执行过程详解

2024-04-02 19:04:59 383人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录对象方法的调用执行过程调用方法的几种方式第一种第二种第三种对象方法的调用执行过程 编译器查看对象的声明类型和方法名。假设调用x.f(param),隐式参数为x声明为C类对象,需要

对象方法的调用执行过程

编译器查看对象的声明类型和方法名。假设调用x.f(param),隐式参数为x声明为C类对象,需要注意的是,有可能存在多个方法名为f,但是参数不同的方法,此时,编译器会一一列举C类中的所有方法名为f的方法和超类中访问属性为public的并且名字为f的方法。

接下来,编译器将查看调用方法时提供的参数类型。如果在所有名为f的方法中存在一个与提供的参数类型完全匹配,就选择这个方法,这个过程叫做“重载解析”。

如果是private方法、static方法、final方法或者是构造器,那么编译器就可以准确的知道应该调用那个方法,我们将这种调用方式为静态绑定,与此对应的是,调用的方法依赖于隐式参数的实际类型,并且在运行时实现动态绑定。比如,调用一个f(String)的方法。

当程序运行时,并且采用动态绑定调用方法,虚拟机一定调用与x所引用对象的类型最合适的那个类的方法。假设,x的实际类型是D,他是C的子类,如果子类D中定义了f(String)方法,就直接调用它,否则就搜索C类中的方法,一次类推。

这样调用方法的开销十分的大,因此虚拟机为每个类都定义了一个方法表,其中列举了所有的方法名和签名,这样,真正调用方法时,虚拟机就直接朝朝这个表就可以了。

调用方法的几种方式

一般的,在Java语言中,调用方法有三种方式。

第一种

通过对象名.方法名进行调用,这是最普通的也是最常见的一种调用方式。

第二种

通过new关键字调用构造方法,这种是在实例化对象时使用的方式。

第三种

通过类名.方法名调用,当需要调用的那个方法为静态(有static的)方法时使用。配合实际操作,附如下例子:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java对象方法的调用执行过程详解

本文链接: https://www.lsjlt.com/news/139259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作