.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:获得该类型的全称名称。


猜你喜欢

转载自blog.csdn.net/qq_42026738/article/details/80171255