标签:描述 动态调用 分配 反射机制 语言 方法参数 程序 静态方法 tde
JAVA21
l 当程序要使用某个类时,如果还没被加载到内存中,系统会就会通过加载 连接 初始化三个步骤对这个类进行初始化
l 加载
l 连接
l 初始化
就是创建对象
l 新建一个有main方法的类
l 其他类调用这个类中的方法 成员变量 或者实例化创建对象
l 其他类调用这个类的子类中的方法 成员变量 或者实例化对象
l 运行任何一个类都是先运行Object类的方法
=
l 根类加载器
l 扩展加载器
l 系统加载器
l 运行时期对于任何一个类
l 都能知道这个类的所有属性和方法
l 对于任何一个对象都能调用他的任何一个方法和属性
l 这种动态获取信息及动态调用对象的方法的功能就叫做java语言的反射机制
l 类加载器加载新功能类 产生一个class文件对象
l 用这个文件对象调用新功能类的方法
l Java.lang.Class类描述文件对象的类 文件对象就是这个类的类型
l 对象获取
l 类名获取
l Class类的静态方法获取
l 三个方法获得的对象都是同一个
l 运行构造方法相当于创建了对象
l getConstructors()获取class文件对象中的所有公共的构造方法
l 返回Constructors类型的数组
l 获取一个指定构造方法
可变参数
l 运行
NewInstance()
l 获取有参数的构造方法并运行
l 快速方式
l 不推荐破坏了程序的封装性安全性
l getDeclaredConstructors()
l 获取所有的构造方法
l 返回一个Constructor类型的数组
l 示例
l getDeclaredConstructor(class..c)
l 可变参数
l 返回一个私有的构造方法
l 示例
不能访问私有的
l setAccessibale 对权限的访问
l Class类中的方法 getFields() getDeclaredFields()则是获取私有的
l 获取指定成员变量
l getMethods()
方法很多都是公共的
l getMethod()
l 使用获得的方法
Invoke()
l 存储规定泛型之外的元素
l 伪泛型 编译后的class文件没有泛型可以直接获取class文件对象获取方法
l 不能使用曾强for或者迭代器遍历 所以只是为了练习反射
l 原理
l 实现
标签:描述 动态调用 分配 反射机制 语言 方法参数 程序 静态方法 tde
原文地址:http://www.cnblogs.com/DMYMaster/p/7353386.html