欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    运行期类型判定ppt课件.ppt

    • 资源ID:2710111       资源大小:153.01KB        全文页数:17页
    • 资源格式: PPT        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    运行期类型判定ppt课件.ppt

    Tel:0571-88394222 QQ;106159278,运行时刻类型判定,Tel:0571-88394222 QQ;106159278,什么是“RTTI”,RTTI( run-time type identification )的初期想法非常简单:当有一个指向基础型别base type的reference时,RTTI机制让你找出其所指的确切型别,不过当拓展到java.lang.reflection的时候,展现了全新的功能. 即现在的java中存在两种形式的rtti: 传统的rtti; reflection机制 (反射机制),Tel:0571-88394222 QQ;106159278,Class对象,用来描述class的对象 程序中的每个class都有一个相应的Class对象。就是说你的新的class编译完成后,就会产生一个Class对象存储于相同的.class文件内。执行期间当你想要产生该class的对象时,JVM便会检查该类型的Class对象是否已经装载。如果尚未装载,JVM会根据名称找到.class文件并装载它。因此Java程序启动时并不会将整个程序都装载。 一旦某个型别的Class对象已经被装载,它就可以用来产生该型别的所有对象。,Tel:0571-88394222 QQ;106159278,Class封装对象运行时的状态。当类被加载创建对象时,与该类相关的一个类型为Class的对象就自动创建。Class类本身不提供构造方法,因此不能使用new运算符和构造方法显式地创建一个Class对象。任何对象调用getClass()方法都可以获取与该对象相关的一个Class对象,这个Class对象通过方法可以获取创建对象的类的有关消息(如类的名字、类中的方法名称、成员变量的名称等)。,Tel:0571-88394222 QQ;106159278,理解Class对象,Class是一个类,由该类生成的对象称为Class对象。(和其他的类道理一样)。 Class对象是一个对象,这个对象的功能是描述一个抽象的类,java里面的任何类都由一个Class对象来描述它。,Tel:0571-88394222 QQ;106159278,即使没有使用类创建对象,我们也可以实例化一个与该类相关的Class对象,可以直接让Class对象调用它的类方法: static Class forName(String className)。返回一个与参数className制定的类相关的Class对象。,Tel:0571-88394222 QQ;106159278,获得Class,ClassName.class New Object().getClass(); Class.forName(“path”);,Tel:0571-88394222 QQ;106159278,Class与对象,Class是对类的描述,利用Class也可以得到对象。 方法: new Object().getClass().newInstance(); 利用构造函数。,Tel:0571-88394222 QQ;106159278,构造函数,利用构造函数得到对象 Class c = Class.forName(“Computer”); Constructor constuctor = c.getConstructor(“.getClass();/ 获得参数为string类型的构造函数。 Object o = constuctor.newInstance(“); class Computer public Computer(String name) System.out.println(“带参数为String类型的构造函数”); ,Tel:0571-88394222 QQ;106159278,方法,利用Method类 c = Class.forName(name); o = c.newInstance(); com = (Computer_Class) o Method method = c.getMethod(“show“, String.class); Object re = method.invoke(com, “3“); System.out.println(re.toString();,Tel:0571-88394222 QQ;106159278,类型检查,传统类型。例如“shape”便是运行RTTI检查转型动作是否正确,并在转型错误时抛出ClassCastException 代表对象型别的所谓Class对象,我们可以查询Class对象获得有用的执行期信息。 关键字instanceof,Tel:0571-88394222 QQ;106159278,Instance of,转型之前最好执行类型检查:(避免执行期异常ClassCastException) 1.传统转型:.instanceof if(x instanceof Dog) /这种运算符是使用老式关键字,他要求x必须为引用,所以不能用基本类型变量名,而后面的Dog也必须是Class,所以还是不能用基本类型.同时有个缺点就是Dog本身必须是Class名,根本不能用某种变量替换,相比于下面的方法缺少灵活性. 2.操作Class对象: Class.isInstance(obj)/比如 Class c=Dog.class; if(c.isInstance(x)obj也要求是object,Tel:0571-88394222 QQ;106159278,RTTI methods,要运用RTTI,首先必须取得一个reference指向正确的类对象, 1) 使用字符串配合Class.forName() 2)有对象的时候,可以用Object函数getClass();,Tel:0571-88394222 QQ;106159278,注意,事实上。RTTI和多态上有重复的功能,先尝试使用多态,最后才使用RTTI,记住,不要滥用RTTI.,Tel:0571-88394222 QQ;106159278,练习,Fruit 类有属性表示个数。两个方法可以通过反射得到对象。实现这两个方法。 2. 获得对象方式: New 反射,Tel:0571-88394222 QQ;106159278,利用反射机制调用小孩的吃方法,吃方法需要传入一个参数,类型为数字。 通过字符串得到电脑,电脑只有一个构造函数,参数为字符串表示电脑牌子。利用反射调用电脑打印牌子的方法。,Tel:0571-88394222 QQ;106159278,联系方式,杭州和盈科技公司 Address:潮王路238号银地大厦2F www.aowin.com,

    注意事项

    本文(运行期类型判定ppt课件.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开