Java反射机制总结学习--Class类
2017-03-06 11:07
363 查看
以前一直知道Java反射机制,也会用,但是并没有很好地去总结梳理。所以在这里记录一下,更熟悉一下。
万物皆对象
class A{ void print(){ System.out.println("A"); } } public class ClassDemo1 { public static void main(String[] args) { //A的实例对象 A a1 = new A(); }
上面 ,我们知道a1是A类的对象,那么,A类本身是不是对象呢,当然也是对象,因为万物皆对象。那它是哪个类的对象呢?答案是Java.lang.Class类的对象。有一个class是Class类。
既然A类本身也是也是对象,那么它怎么实例对象怎么表示呢?有以下三种:
//第一种,任何一个类都有一个隐含的静态成员变量 Class c1 = A.class; //第二种 ,已经知道该类的对象,通过getClass方法获取 Class c2 = a1.getClass(); //c1,c2表示了A类的类 类型 class type; //c1 c2都代表了A类的类类型, System.out.println(c1 == c2);//true //第三种 Class c3 = null; try { c3 = Class.forName("com.wj.demo.A"); System.out.println(c1 == c3);//true } catch (ClassNotFoundException e) { e.printStackTrace(); }
上面的c1,c2,c3都是A类的类类型,我们可以通过类的类类型创建该类的实例:
//可以通过类的类类型创建该类的实例 try { A a = (A) c1.newInstance();//需要有无参数的构造方法 a.print();//可以正常调用 } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); }
而且,需要注意的是Class类的构造方法如下:
/* * Constructor. Only the Java Virtual Mach ac1f ine creates Class * objects. */ private Class() {}
所以,我们不可能调用Class的构造方法。
以上就是关于Class类的基本介绍与使用。所有代码:
public class ClassDemo1 { public static void main(String[] args) { //A的实例对象 A a1 = new A(); //A也是实例对象,是Class类的实例对象 //任何一个类都是Class类的实例对象,都可以有三种表示方式 //第一种,任何一个类都有一个隐含的静态成员变量 Class c1 = A.class; //第二种 ,已经知道该类的对象,通过getClass方法获取 Class c2 = a1.getClass(); //c1,c2表示了A类的类 类型 class type; //c1 c2都代表了A类的类类型, System.out.println(c1 == c2); //第三种 Class c3 = null; try { c3 = Class.forName("com.wj.demo.A"); System.out.println(c1 == c3); } catch (ClassNotFoundException e) { e.printStackTrace(); } //可以通过类的类类型创建该类的实例 try { A a = (A) c1.newInstance();//需要有无参数的构造方法 a.print(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } Class b1 = B.class; System.out.println(c1 == b1); } /** * 1、类是对象,是java.lang.Class类的实例对象,Class也是一个class * */ } class A{ void print(){ System.out.println("A"); } }
相关文章推荐
- 小菜鸟的Struts MVC和Java反射机制等知识的学习总结
- Java反射机制的学习总结
- java反射机制学习总结
- Java反射机制——学习总结
- Java反射机制总结学习--动态加载类
- java反射机制学习总结
- Java反射机制——学习总结
- java反射机制学习总结
- Java反射机制——学习总结
- java反射机制学习总结
- java Class类学习总结
- Java基础学习总结(75)——Java反射机制及应用场景
- Java反射机制总结学习--调用类的方法
- JAVA反射机制学习总结
- Java反射学习总结(1)——Class类的使用
- java反射机制学习(一)--Class类
- Java基础学习总结(75)——Java反射机制及应用场景
- Java反射机制——学习总结
- 在自己学习stuts是遇到问题后总结的经验。
- JSP学习经验总结(转)