在面向对象的世界里,万事万物皆对象。
类是对象,类是java.lang.Class类的对象。
这个对象我们称之为该类的类类型。
成员变量也是对象,它是java.lang.reflect.Field类的对象。
成员方法也是对象,一个成员方法就是一个Method对象。
一些基本数据类型也是对象,他们都分别有对自己的封装类。
构造函数也是对象,封装在java.lang,Constractors()里边。
任何一个类都是Class类的实例对象,因为Class类提供了一个私有的构造方法,所以无法直接创建Class对象。
创建Class类的实例对象有三种方式:
比如存在一个类,类的代码如下:
public class Aa { } |
a)Class c1=Aa.Class; //任何一个类都有一个隐含的静态成员变量Class
b)Aa a=new Aa(); Class c2=a.getClass();
c)Class c3=null;c3=Class.forName("com.cn.Aa");
其中c1==c2==c3,这是因为一个类只可能是Class类的一个实例对象。
静态加载//通过new创建对象是静态加载,在编译时就需要加载所有可能使用到的类
动态加载//指的是在程序的运行的时候进行加载