java反射机制学习(一)--Class类
2014-11-25 21:51
218 查看
java是面向对象的语言,在java的世界里,万物都是对象,类也不意外。类也是对象,java中的所有类都是java.lang.Class类的实例对象
而要表示这个实例对象,即类的类类型,有三种方法:
1.用某个类的class属性(说明每个类都是有一个隐含的属性class的),假设有一个类Foo
例如:Class c1=Foo.class 这样就可以得到Foo的类类型,也就是Foo相对于Class的一个实例对象
2.利用某个对象的getClass()方法,如果知道foo是Foo的一个对象的话,那么
Foo foo=new Foo();
Class c2=foo.getClass();
3.用Class.forName(“具体类名”),这是一种动态加载类的方法。
先解释一下何为动态加载类:
首先我们平时创建一个对象的时候,都是用new来创建的,这是一种静态加载类的方法
静态加载类是指编译时刻就把需要用到的类全部加载了,如果某一个对象加载不成功的话,编译将不能通过
动态加载类是指运行时刻加载类,即使某个对象为空的,在编译的时候也不会报错。
最后附上三种方法的代码:
而要表示这个实例对象,即类的类类型,有三种方法:
1.用某个类的class属性(说明每个类都是有一个隐含的属性class的),假设有一个类Foo
例如:Class c1=Foo.class 这样就可以得到Foo的类类型,也就是Foo相对于Class的一个实例对象
2.利用某个对象的getClass()方法,如果知道foo是Foo的一个对象的话,那么
Foo foo=new Foo();
Class c2=foo.getClass();
3.用Class.forName(“具体类名”),这是一种动态加载类的方法。
先解释一下何为动态加载类:
首先我们平时创建一个对象的时候,都是用new来创建的,这是一种静态加载类的方法
静态加载类是指编译时刻就把需要用到的类全部加载了,如果某一个对象加载不成功的话,编译将不能通过
动态加载类是指运行时刻加载类,即使某个对象为空的,在编译的时候也不会报错。
最后附上三种方法的代码:
package com.quan.inflect; public class Test1 { /*在面向对象里面,万物皆对象 * 所有的类都是对象,是Java.lang.Class的实例对象 * 要表示Class的对象(即某个类的类类型(class Type)),有三种方法 * */ public static void main(String[] args){ //第一种表示方法 -->说明每个类都有一个隐含的静态成员class Class c1=Foo.class; System.out.println(c1); //第二种表示方法,如果知道foo是Foo的一个对象 Foo foo=new Foo(); Class c2=foo.getClass(); //不管该类有多少个对象,一个类只能是Class类的一个实例对象 System.out.println(c1 == c2); //第三种表示方法,动态加载类 Class c3=null; try { c3=Class.forName("com.quan.inflect.Foo"); //可以通过类类型创建该类的对象 try { Foo foo1=(Foo)c3.newInstance(); foo1.start(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class Foo{ void start(){ System.out.println("start()运行"); } }
相关文章推荐
- Java反射机制总结学习--Class类
- java反射机制学习总结
- Java中Class类的学习
- JAVA反射机制学习
- Java反射机制的学习(转)
- Class类的加载以及类的产生原理java学习 第十天
- JAVA反射机制的学习
- Java反射机制-Class类获取类信息
- JAVA反射机制-class类的获取
- JAVA反射机制的学习
- Java学习,数组的相关操作,封装类,Class类,反射API
- JAVA反射机制入门(一)--Class类API实例介绍
- 小菜鸟的Struts MVC和Java反射机制等知识的学习总结
- JAVA反射机制的学习
- java反射机制学习
- Java反射机制学习摘录
- JAVA学习提高之---- JAVA反射机制
- 通过实例学习java反射机制的强大
- Java反射机制-Class类获取类信息
- Class类的加载以及类的产生原理java学习 第十天