- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MLDN 第十五章 Java反射机制
1、课程名称:认识class类1.1、本课目标掌握Object类中getClass()方法的作用认识Java反射机制1.2、具体内容在正常情况下,必须知道一个类的完整路径之后才可以实例化对象,但是在Java中也通话通过一个对象来找到其所在的类的信息,那么这实际上是Class类的功能。package zyz.demo;class X{};publicclassGetClassDemo01{publicstaticvoid main(String args[]){X x = new X() ;// 实例化X类的对象System.out.println(x.getClass().getName()) ;// 得到对象所在的类}};结果:zyz.demo.X此时,所有的操作都是反着来的。Classic类Classic本身表示一个类的本身,通过Classic可以完整的得到一个类中的完整结构,包括此类中的方法定义,属性定义等。实例化Classic类对象实例化Classic类对象的方法有三种:第一种:通过forName()方法第二种:类.class第三种:对象.getClass()package zyz.demo;class X{};publicclassGetClassDemo02{publicstaticvoid main(String args[]){Class? c1 = null ;// 指定泛型Class? c2 = null ;// 指定泛型Class? c3 = null ;// 指定泛型try{// 以下的操作形式是在开发中最常用的一种形式c1 = Class.forName(org.lxh.demo15.getclassdemo.X) ;}catch(ClassNotFoundException e){e.printStackTrace() ;}c2 = new X().getClass() ;// 通过Object类中的方法实例化c3 = X.class ;// 通过类.class实例化System.out.println(类名称: + c1.getName()) ;// 得到类的名称System.out.println(类名称: + c2.getName()) ;// 得到类的名称System.out.println(类名称: + c3.getName()) ;// 得到类的名称}};一旦可以实例化Class类之后,就可以进行反射的进一步操作。1.3、总结了解Classic类的作用:反射的源头三个Class类的实例化方式,其中要以“forName()”重点掌握,类.class2、课程名称:Class的使用2.1、本课目标可以使用Class类完成对象的实例化操作可以通过Constructor类调用有参构造方法完成对象的实例化操作2.2、具体内容Class主要是反射的源头,不光可以取得对象所在类的信息,也可以直接通过Class类的方法进行对象的实例化操作正常情况下,使用关键字new为对象实例化,如果现在已经实例化好了Class对象,则就可以通过Class类中提供的public TnewInstance()throws InstantiationException,IllegalAccessException实例化对象class Person{private String name ;// name属性privateintage ;// age属性publicvoid setName(String name){this.name = name ;}publicvoid setAge(int age){this.age = age ;}public String getName(){returnthis.name ;}publicint getAge(){returnthis.age ;}public String toString(){// 覆写toString()方法return姓名: + this.name + ,年龄: + this.age ;}};publicclass Demo01{publicstaticvoid main(String args[]){Class? c = null ;// 声明Class对象try{c = Class.forName(org.lxh.demo15.instancedemo.Person) ;}catch(ClassNotFoundException e){e.printStackTrace() ;}Person per = null ;// 声明Person对象try{per = (Person)c.newInstance() ;// 实例化对象}catch(Exce
文档评论(0)