java反射、设计模式

反射

类的对象: 基于定义好的类 创建该类的一个实例对象, 使用new通过一个类创建出的对象

类对象:类加载的产物,封装一个类所有的信息(类名 父类 接口 方法 属性…) 基于Class这个类创建出的对象

一.获取类对象

1.使用该类所创建出的类的对象 通过getClass()来获取

Student stu = new Student();
Class c = stu.getClass();

2.通过 类名.class 来获取一个类的 类对象

Class c = Student.class;

3.通过 Class.forName(“类的全类名/全限定名”); 类的全类名/全限定名:包名+类名

Class c = Class.forName("classes.Student");

4.类加载时机

1.当第一次创建本类对象时 
2.第一次访问静态成员时(静态属性+静态方法)
3.当子类进行类加载时(当子类对象第一次被创建或子类静态成员第一次被访问) 父类会先进行类加载(也就只执行一次)
4.当第一次使用Class.forName()方法来获取一个类的类对象时
二.类对象的使用

1.获取类对象中属性 方法 构造方法的信息

a)获取非私有的信息
	类对象.get Field(名字)/Method(名字)/Constructor();
b)获取私有的信息
	类对象.get Declared Field(名字)/Method(名字)/Constructor();
c)获取所得属性/方法/构造方法信息
	获取所有公开的属性/方法/构造方法信息 包括了父类
	类对象.get Fields/Methods
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值