求解什么是类类型感觉要疯了

来源:4-1 Java 获取成员变量构造函数信息

294761325

2017-02-27 16:14

Class c1 = Foo.class;

c1就是Foo类的类类型  如何分解这句话?

c1是Foo类的类也就是Class的类型?可以这样理解?

Class c1 = Foo.class;

   System.out.println(c1.getName());

 为什么结果又是Foo?


写回答 关注

7回答

  • 寒霜丶
    2017-02-27 17:18:47
    已采纳

    我是这么理解的:

    Foo是一个类,没错吧;

    然后这个类它有各种各样的属性,比如什么类名啊,类性别啊(假装它有),类体积啊(假装它有),类周长啊(假装它有)等等;

    我们现在只不过取出来其中一个这个类的其中一个非常牛逼的属性:也就是这个类的类型(简称类(的)类型),这个类类型的牛逼之处在于:只要有了这个类的类型,我们就可以知道它的类名,它所有的成员变量,甚至它所有的的方法名;就像你知道了一个人的身份证号码一样,这个人的什么名字性别年龄指纹你都能通过这个身份证号码查到。

    假设这个Foo这个类是个人的话,那么它的类类型就相当于这个人的身份证号码;

    我们用Class c1 = Foo.class;这个语句取得了这个类的身份证号码(类类型),然后通过c1.getName();调用了取出这个类名字的方法getName(),那么你自然会看到这个类的名字,也就是Foo~

    294761...

    懂了感谢 !!

    2017-02-27 17:30:36

    共 1 条回复 >

  • ChengHaoo
    2019-07-27 10:30:12

    Class c1 = new Foo() 我的理解是可以看出是Fool类的向上转型,创建了一个父类的实例

  • 慕粉3796571
    2017-06-11 16:28:35

    Class类里面包含了人类能抽象出来的世界万物里面的所有属性(声光电热);Class类的实例被称为某类(某事物具有的共同属性)的类类型,某类的类类型的实例就是我们常用的实例对象(参数具体化)。

  • qq_安城弥生_1
    2017-05-31 17:50:09

    建议大家看一本书《java从入门到放弃》

  • 294761325
    2017-02-27 17:32:35

    概念

        Class类是所有类(注意是对象)的共有信息的抽象,比如该类实现的接口、对应的加载器、类名等等。一句话,类类型保存了每个类所对应的类型信息。每一个类都有一个Class对象,这个对象在类被加载后由JVM自动构造。也是由JVM管理的,Class类是没有公共的构造方法的。
        Class对象对于类来说就像是,DNA对于每个人,里面有你的一切生物信息。java中可以通过Class来取得类的实例,也许将来的将来通过你的DNA也能得到你的另一个实例。科幻电影里是已经实现了。ok,概念应该有个初步的认识了。

    参考http://blog.csdn.net/zhuojiajin/article/details/39255815

  • 咸鱼徐同学
    2017-02-27 17:32:24

    首先如果你是初学者我不建议你把反射这里看很深,会影响你后面写代码的思路。反射的东西初学者浅尝辄止就好。只要知道反射是动态加载类,能和静态加载类区分开就行。等你用Spring+SpringMVC开发一段时间,遇到瓶颈了。再回来看效果会好很多。现在给你讲很难讲清楚,你可能面向对象的抽象概念都没理解。

    294761...

    刚刚学习框架 谢谢你的建议

    2017-02-27 18:09:00

    共 1 条回复 >

  • 大梵天1984
    2017-02-27 17:08:41

    现在疯吧  反正早晚都得疯 晚疯不如早疯

反射——Java高级开发必须懂的

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

151468 学习 · 335 问题

查看课程

相似问题