.getClass和.class的区别,用法

.getclass()在Java.long.Object类下;

返回的是此对象运行时的class对象

1,获得类型类

我们知道在Java中一切都是对象,我们一般所使用的对象都直接或间接继承自Object类。Object类中包含一个方法名叫getClass,利用这个方法就可以获得一个实例的类型类。类型类指的是代表一个类型的类,因为一切皆是对象,类型也不例外,在Java使用类型类来表示一个类型。所有的类型类都是Class类的实例。例如,有如下一段代码:

  1. A a = new A();  
  2.   
  3. if(a.getClass()==A.class) {  
  4.   
  5.       System.out.println("equal");  
  6.   
  7. else {  
  8.   
  9.       System.out.println("unequal");  
  10.   
  11. }  
  12. 输出equal;  

a是类A的一个实例化对象在if语句中返回的正是A类型类。
在Java中一个特定的类型类可以用“类型.class”的方式获得。因为a.getclass()获得的正是类型A类也就是A.class

因此结果是equals. 特别注意的是,类型类是一一对应的,父类的类型类和子类的类型类是不同,因此,假设A是B的子类,那么如下的代码将得到“unequal”的输出:
[java]  view plain  copy
 
  1. A a = new A();  
  2.   
  3. if(a.getClass()==B.class) {  
  4.   
  5.         System.out.println("equal");  
  6.   
  7. }  else {  
  8.           
  9.           System.out.println("unequal");  
  10. }  
  11. 输出unequal;  

因此,如果你知道一个实例,那么你可以通过实例的“getClass()”方法获得该对象的类型类,如果你知道一个类型,那么你可以使用“.class”的方法获得该类型的类型类。

getName():String:获得该类型的全称名称。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值