java 反射基础(1)

  关于Class:
     1.Class是一个类,描述类的类,比如定义了Person类,Person类是描述人的,那么谁来描述Person了,所以需要Class这么一个类来描述定义的类
     2.反射可以理解为对象照镜子后可以得到的信息,某个类的数据成员名,方法和构造器,某个类到底实现了那些借口
     3.对于每个类而言,jre都为其保留一个不变的Class类型的对象,一个Class对象包含了特定某个类的有关信息
     4.Class对象只能有系统建立对象

     5.一个类在jvm中只会有一个Class实例


获取Class 对象的三种方式:

	public void testClass() throws ClassNotFoundException{
		
		Class clazz = null;
		
		//1.通过类名得到Class对象
		clazz = Person.class;
		
		//2.通过对象调用getClass()方法来获取
		//这种一般不常用,比如传入一个Object对象,想知道是什么对象可以使用该方式
		Person person = new Person();
		clazz = person.getClass();
		
		//3.通过全类名的方式来获取,用的较多
		String className = "cn.Person";
		clazz = Class.forName(className);
	}

调用newInstance()方法即可获取对应类的对象了

	public void testNewInstance() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
		
		String str = "cn.pzhu.reflection.Person";
		Class clas = Class.forName(str);
		
		//利用newinstance方法创建对象
		//实际调用的是无参数的那个构造器
		Object obj = clas.newInstance();
		System.out.println(obj);

	}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值