【问题标题】:what is .class in java? [duplicate]java中的.class是什么? [复制]
【发布时间】:2021-06-07 00:49:51
【问题描述】:
public static void main(String[] args)  
{  
    // Let's print the classloader name of current class.   
    //Application/System classloader will load this class 
    Class b= int.class; 
    Class c=ClassLoaderExample.class; 
    ClassLoaderExample a= new ClassLoaderExample(); 
    System.out.println(c);
}  

这里的 .class 是什么以及它指定了什么? c 和 a 不同吗?

【问题讨论】:

  • 据此,a和c都是ClassLoaderExample类的对象,那为什么a.getCalss和c.getClass的输出不同呢?
  • 不,和上面一样。但并没有消除我的困惑。我试图理解。可能是我的把握力低,但我还是不清楚。

标签: java


【解决方案1】:

class 是类型的定义,object 是类型的实例。见这里:https://docs.oracle.com/javase/tutorial/java/javaOO/index.html

cClass 类型的对象。因此,c 本身是“某种类型的对象”,但它的 传达了有关其他实体类型的信息。

是的,初学者会感到困惑。幸运的是,不必经常使用Class 类型。

【讨论】:

  • 那么 a 和 c 都是对象,但属于不同的类?
  • 这正是您在代码中看到的内容:Class c = ...; ClassLoaderExample a = ...;
  • 让我说清楚。这里 c 是 Class 的对象。但它指的是 ClassloaderExample 类。就像 b 是 Calss 类的对象,但指的是 int 类。所以当我打印 b 时,它是 int 但 b.getClass(),它是 java.lang.Class。但是a是ClassLoaderExample类的对象,a.getClass()会这样说。
  • 我走对了吗?
  • a.getClass 是一个返回值的方法,与c 相同。我不太明白,抱歉,这里有什么困惑?
猜你喜欢
  • 2012-11-28
  • 1970-01-01
  • 2014-12-03
  • 2011-06-06
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-07
相关资源
最近更新 更多