java中的class对象解释

打个比方,比如说,人是一个类(Human Class),张三,李四是具体的人的对象(Human instance),即 Human 张三 = new Human("张三"),Human 李四 = new Human("李四"),这时我把张三挑出来,我要判断张三是什么类,比如调用 张三.getClass(),那么,getClass返回值应该是一个特殊的类的对象,而不是人的对象,对不对?也就是Class c = 张三.getClass(),而不是 Human c = 张三.getClass(), 因为张三,李四这样的才算是人的对象。那么这个特殊的类的对象c就是你所说的类对象。同样的,Class.forname( "Human"),返回的就应该是人的类的对象而不是人的对象。

再打个比方,比如你有一个配置文件,就用porperties文件吧,里面有这样的设置
classname=Human (根据不同的需求可以设置需要用不同的类)
这时候,你想从配置文件中读出类的名字,然后想通过这个名字去生成实例,而读出文件时,得到的是"Human"这样的字符串,你要怎么用它生成实例呢,总不能 "Human" 张三 = new "Human"("张三")吧,字符串是不能当作类使用的,对不对?你也不可能在配置文件中设置一个类,然后从文件中读出来就是一个类,你只能在文件中设置classname=Human这样的字符串(文件里的内容都算是字符串),你从文件里读出来的也只能是字符串,对不对?那么这时候,你要生成实例,就必须通过这个特殊的类对象,即 Class c = Class.forName("Human");这样你得到这个类对象c以后,就可以通过相应的方法去创建人对象或者改变某个人对象的属性和方法。这个类对象到底有什么用?这里就是主要的用处了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值