反射————Class使用
java里面不是面向对象的有两个
java语言中,静态的成员和普通的数据类型,数据类型有包装类作为弥补,静态的成员属于类而不是实例对象
任何类本身都是java.lang.Class类的实例对象
如果说普通我们定义的java类是实例对象的模板的话,java.lang.Class这个类就说普通类的模板
任何一个类都是Class的实例对象,这个实例对象有三种表示方式
一、任何类都是Class的实例对象,所以实例对象能够用类的静态成员变量,普通的类也能用java.lang.Class的静态成员变量
Student是一个普通的类,它现在用了java.lang.Class的静态成员变量,class
Class c1 = Student.class
二、任何类都是Class的实例对象,所以实例对象能够用类的方法,普通的类也能用java.lang.Class的方法
Class c2 = Student.getClass();
三、类的加载
Class c3 = null;
c3 = Class.forName("com.test.Student");
最后我们可以通过类的类类型来创建类
Student s = c1.newInstance();
上面的两中表示方式都是获取,Student类的类类型(class type),通俗的说就是Student这个实例对象的类型,而这个实例对象是一个普通的类,就说是类的类型。
c1 和c2、c3的值是相等的,但是不同的类的class是不一样的