当前位置: 首页 > news >正文

html5网站制作工具静态网页模板源码

html5网站制作工具,静态网页模板源码,桂林生活网官网二手房,做字体特效的网站JAVA调用对象方法的执行过程#xff1a;①.编译器查看对象的声明类型和方法名。假设调用x.f(parameter), 且隐式参数x声明为C类型的对象#xff0c;有可能在C对象中存在多个参数类型和参数个数不同的f的方法{例如#xff1a;f(int)、f(int,String)和f(String)}#xff0c;…JAVA调用对象方法的执行过程①.编译器查看对象的声明类型和方法名。假设调用x.f(parameter),  且隐式参数x声明为C类型的对象有可能在C对象中存在多个参数类型和参数个数不同的f的方法{例如f(int)、f(int,String)和f(String)}编译器会一一列举C类中的f方法和C的超类中声明为public所有的f方法。至此编译器已经获得所有可能被调用的候选方法。②.接下来编译器将查看调用方法时所提供的参数类型和参数个数。如果所有名为f的方法中存在这样一个与提供方法的参数类型和参数个数完全匹配的方法就选择这个方法这个过程也称重载解析。例如对于调用f(“This is my java”)来说编译器会寻找f(String)这个方法。如果编译器没有找到与参数类型和参数个数匹配的方法或者经过类型转换后有多个方法于此匹配就会报告一个错误。至此已经寻找到需要调用的方法和参数类型③如果是此方法是被private、static、final修饰或则是构造器那么编译器可以准确的知道应该调用哪个方法于是便调用这个的方法。这种调用方式叫着静态绑定。静态绑定方式于此结束。而与此对应是调用方法依赖于隐式参数的实际类型并且在运行时实现动态绑定编译器采用动态绑定的方式会生成一条调用f(String)的指令(其原因请查看下面的动态绑定解析)。④.当程序运行并且采用动态绑定调用方法时虚拟机一定调用与x所引用的对象的实际类型最适合的那个方法。假设x的实际类型是DD是C的子类如果D类定了方法f(String)编译器就直接调用它否则就在D类的超类C中寻找f(String)方法如果C类型中不存在这个方法则又到寻找C的超类中寻找这个方法以此类推。这个过程就称为动态绑定。动态绑定解析每次调用方法时都要进行搜索这样一来时间开销相当大。因此虚拟机预先为每一个类创建了一个方法表其中列举出了类中的所有方法签名和实际调用的方法。而在真正调用方法的时候虚拟机仅仅查找这个表就行了。在前面的列子中虚拟机搜索D类的方法表。以便寻找与调用f(String)相匹配的方法。这个方法既可能是D.f(String),也可能是C.f(String),还有可能是*.f(String)这里的*是指D的超类。----参考于《Core Java》下面我们就举一个简单的例子新建一个Father类,并且让Son类继承Father基类:package com.bin.bind;public class TestBind {public static void main(String[] args) {String name TOM;String hobby ~~~sleep~~~;int age 19;Father father new Son(name, hobby, age);String result father.getAllInfo();System.out.println(result);}}class Father {public Father(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public int getAge() {return age;}public void setName(String name) {this.name name;}public void setAge(int age) {this.age age;}public String getAllInfo() {return 姓名是:this.name\t年龄是:this.age;}private String name null;private int age 0;}class Son extends Father {public Son(String name, String hobby, int age) {super(name, age);setHobby(hobby);}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby hobby;}public String getAllInfo() {return 姓名是:super.getName()\t年龄是:super.getName()\t爱好是:hobby;}private String hobby null;}在Father和Son类中都存在getAllInfo()这个方法因为getAllInfo()不是static、final、private、构造方法所以此方法将采用动态绑定。在程序执行的时候虚拟机会为这个两个类生成方法表Father类Father(String,int)-Father(String,int)setAge(int)-Father.setAge(int)getAge()-Father.getAge()setName(String)-Father.setName(String)getName()-Father.getName()getAllInfo()-Father.getAllInfo()Son类Father(String,int)-Father(String,int)setAge(int)-Father.setAge(int)getAge()-Father.getAge()setName(String)-Father.setName(String)getName()-Father.getName()getAllInfo()-Father.getAllInfo()Son(String,String,age)-Son(String,String,age)setHobby(String)-Son.setHobby(String)getHobby()-Son.getHobby()getAllInfo()-Son.getAllInfo()注意上面列举的方法并不完整因为他们还都默认继承了一个Object超类。下面分析这条语句String result father.getAllInfo();father.getAllInfo()的解析过程如下①虚拟机提取father类的实际类型的方法表。既可能是Father类也可能是Son类。(因为这里father引用所指向的是Son类的实例对象所以实际类型必定是Son)②接下来虚拟机搜索定义getAllInfo签名的类此时虚拟机已经知道调用哪个方法。(Son中只有一个getAllInfo方法且与此匹配所以被调用) ③虚拟机执行调用方法。(最后将返回结果赋值给result)
http://www.yutouwan.com/news/94104/

相关文章:

  • 好的建网站公司铜梁网站建设
  • 北京建筑设计网站网络推广一个月的收入
  • 扬中网站建设推广编程软件下载安装
  • 用织梦做网站有什么公司会要抖音优化
  • 邯郸成安建设局网站wordpress无法连接到数据库连接
  • 哪里有网站培训的怎么做网站的内链
  • 门窗卫浴网站建设预约网站怎么做
  • 买车看车app排行榜优化设计答案五年级下册
  • 湖南网站排名优化公司wordpress两个域名访问
  • 电子商务网站建设实践课题背景凡客诚品的配送方式
  • 花生壳内网穿透网站如何做seo优化友情链接软件
  • 怎么做公司网站需要什么科目外贸网站运营推广
  • html投票代码建站到网站收录到优化
  • 网站建设建议如何做微信商城网站建设
  • 四会市住房和城乡建设局网站建设银行的登录网站
  • 关于 建设 旅游网站 建议做的网站打开慢
  • 深圳制作宣传片公司网站优化专家
  • 农产品网站建设 孙修东湖北省建设安全管理站网站
  • 泰兴做网站公司网站建设属于会计哪个科目
  • 网站建设能有多大访问量怎么建设展示网站 需要维护费吗
  • 长春专业网站建设模板注册自己的品牌需要多少钱
  • 网站后台怎么上传网页模板百度文库小程序入口
  • 口碑好的定制网站建设提供商云星穹铁道网页版入口
  • 沙漠网站建设网站建设代码怎么写
  • 有没有做外贸的网站啊如何编写html网页
  • 温州建设小学网站wordpress 列表分页
  • 临海城市建设网站制作人在线完整免费观看韩剧网
  • 青岛网站推广招商建设部网站证件查询
  • 旅行网站建设的规划书公司注册地址异常
  • 打开有些网站显示建设中邯郸oa办公系统