java基础——第十七章:反射

本文详细介绍了Java反射的概念,包括动态获取类信息、访问属性和方法、构造函数、Field类、Method类以及Constructor类的使用。反射机制极大地提高了程序的扩展性,通过Class类的多种方式获取实例,以及对构造函数、属性和方法的访问,展示了Java反射的强大功能。
摘要由CSDN通过智能技术生成

 

整章反射:

 

1、反射定义:

 

反射是在程序运行中对任意应该类,都可以知道这个类的所有属性和方法,对于任意应该对象,都能调用它的方法和获取它的属性,这种动态获取信息及动态调用对象方法的机制叫反射机制。

 

反射其实就是动态加载一个指定的类到内存中,形成类的字节码文件对象(或者内存中已加载该类的字节码文件对象),并获取该类中我们所需要的内容。再将这些内容封装成相对应的对象,便于对这些内容进行操作。

反射技术可以对一个类进行拆分,并动态获取类中的特有内容。


 

反射的好处:大大的增强了程序的扩展性。 

2、反射的步骤: 

(1)获取指定名称的字节码文件对象(Class类对象)。 

(2)获得类的属性、方法或构造函数(或者父类、子类、实现的接口等)。 

(3)访问属性、调用方法、调用构造函数创建对象。

 

3、Class类

 

Class类是程序中的类的字节码文件对象,只要在程序中出现的类型,都有各自的Class实例对象
Class类是反射的基础,只有获得了Class类对象才能对程序进行反射操作

得到Class对象的三种方式:

(1)Class cla = 类名.class    需要明确类名,但不需要有对象

(2)Class cla = 对象.getclass();    需要就明确具体的类,并创建该类对象

(3)Class cla = Class.forName("完整的类名");    编译时不需要明确类,运行时可以动态传入类名


 

9个预定义的Class实例对象:

八个基本数据类型和void


 

基本类型的class和TYPE:

Integer.class    包装类的字节码(与对应的基本类型的字节码对象不同)

Integer.TYPE     该字段返回对应的基本类型的字节码文件对象

int.class==Integer.TYPE    这两者是相同的

 

方法:

Constructor  Class对象 .getConstructor(参数列表的Class对象);   得到对应参数的构造方法

Constructors[]  Class对象.getConstructors();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值