当前位置: 首页 > 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://wiki.neutronadmin.com/news/94104/

相关文章:

  • 泉州建设网站公司哪家好邯郸做商城网站的公司
  • 网站空间和云服务器公司网站域名怎么续费
  • 网站建设与管理专业工资高吗网站域名 如何选择
  • 西安网站建设设计公司绩溪建设银行网站
  • 专门做办公的网站网上推广
  • 上海杨浦区建设网站南宁企业网
  • 做查询网站 发布数据做公司中文网站需要注意什么
  • php旅游网站论文宁波专业做网站的公司哪家好
  • 可以做公司宣传的网站有哪些用wordpress搭建娱乐网
  • 小米路由器做网站服务器吗网页设计基础考试题库及答案
  • 长沙做网站备案视频网站软件有哪些
  • 济南营销型网站建设公司wordpress调用视频播放
  • 做动漫网站的小说wordpress php5.6
  • 域名 备案 没有网站wordpress固定链接设置404
  • wordpress全站ajax主题酒泉市建设局网站招标办
  • 公司企业做网站酒店设计公司排名
  • 东莞网站优化服务公司怎么用ip地址做网站
  • 站长工具永久国家中小企业公共服务平台
  • 好孩子官方网站王建设网站 提交入口
  • 如何做网站内部优化上传html到wordpress
  • wordpress整站cdn店面设计包括哪些内容
  • 免费做直播网站wordpress 栏目模板
  • 影响网站访问速度wordpress 分类采集
  • 网站开发设计公司块位网站目录文件夹
  • 中国建筑公司网站大全wordpress虚拟3d网站
  • 坂田网站建设多少钱国内国际时事心得体会
  • 成都公租房官方网站app推广渠道
  • 济宁专业网站制作公司建材 东莞网站建设
  • 绍兴建设网站php购物网站开发文档
  • 具有价值的做网站怎么找人做网站啊