为了账号安全,请及时绑定邮箱和手机立即绑定

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

难度入门
时长 1小时20分
学习人数
综合评分9.67
759人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.5 逻辑清晰
  • 每一个类中都有一个静态成员变量class类
    查看全部
    1 采集 收起 来源:Class类的使用

    2015-12-30

  • 截图留念一下我逝去的青春
    查看全部
  • 1. 万事万物皆对象,类也是对象<br> 2. Class类中的构造方法是私有的,因此只有java虚拟机才能创建Class类的实例对象<br> 3. 任何一个类都是Class的实例对象<br> 4. Class类实例对象的表示方式有三种<br> a. Class c1 = 类名.class 这种方式也说明了任何一个类都有一个隐含的静态成员属 性class<br> b. 用类的对象通过getClass()获取Class的对象<br> Foo foo1 = new Foo();<br> Class c2 = foo1.getClass();<br> C. 通过<br> Class c3 = Class.forName("com.imooc.reflect.Foo");
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

  • test
    查看全部
  • 编译时刻加载类是静态加载类,运行时刻加载类是动态加载类<br> new 创建对象是静态加载类,在编译时刻就需要加载所有的可能使用到的类<br> 通过Class a=Class.forName(arg[0]);此时为动态加载,因为编译时不知道使用哪个类,因此编译没有加载任何类,通过编译。运行时,根据 Java OfficeBetter Word (Word为arg[0],也是类类型),去确定a是哪个类。这就是动态加载。如果word不存在,此时运行会报错。这就是为何有时候会出现编译通过,运行报错的原因。<br> 动态加载一个好处,就是可以随时增加需要编译的类。例如没有excel类,只有word类,也可以运行,需要excel类时再由程序员写此类(为了能统一控制,word类、excel类需要继承同一个父类或者继承同一个接口)。
    查看全部
  • 1.动态加载类:实在运行时编译; 2.在动态加载时,创建对象时,不要直接加载,要写一个接口,来统一类;
    查看全部
  • JAVA(加哇)听得我蛋蛋疼,改下发音好不
    查看全部
    1 采集 收起 来源:Class类的使用

    2015-09-27

  • 类是对象,类是 java.lang.Class 类的实例对象 任何一个类都是 Class 的实例对象,这个实例对象有三种表示方式 A、任何一个类都有一个隐含的静态成员变量 class Class cls = 类名.class B、知道该类的对象通过 getClass 方法获取 Class cls = 实例名.getClass() C、通过类名加载 Class cls = Class.forName("包名.类名") 通过类的类类型创建类的对象实例(需要默认无参构造方法) 类名 实例名 = (类名)cls.newInstance()
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

  • new 创建的对象,是静态加载类,在编译时刻就需要加载所有有可能使用到的类。 通过动态加载类可解决该问题。不会出现编译错误,只可能发生运行时错误。 动态加载类,在运行时加载。动态加载类可实现接口,继承接口特性,这样方便维护,实现更新补丁等功能。
    查看全部
  • 2-1动态加载类 1.Clss.forName("类的全称") 不仅表示了类的类类型,还代表了动态加载类 请大家区分编译、运行 编译时刻加载类是静态加载类,运行时刻加载类是动态加载类 2.//new 创建对象是静态加载类,在编译时刻就需要加载所有的可能使用到的类。eg word excel //通过动态加载类可以解决该问题 //动态加载类,在运行时刻加载 Class c=Class.forName(args[0]); //通过类类型,创建该类对象 OfficeAble oa=(OfficeAble)c.newInstance();//word 和excel都想加载就用一个标准oa oa.start(); //编写一个标准接口 interface OfficeAble { public void start(); } //让word 和excel继承oa class Excel implements OfficeAble { public void start(){ } }
    查看全部
  • 1. 普通数据类型 和 静态的东西都不是对象 。静态的东西是属于一个类。 2. 类是Class类的对象,所有类都是Class类的实例对象,但是不能new出来,因为Class类的构造方法是私有的,只有java虚拟机可以用构造方法创建CLass的实例对象。 表达某个类(Foo)是Class类的实例对象的方法: 第一种: Class c1=Foo.class; //任何一个类都有一个隐含的静态成员变量class 第二种: Class c2=foo.getClass(); //已知该类Foo的对象foo,通过实例对象foo的getCLass方法获取Class类的实例对象Foo 第三种: Class c3=Class.forName("package地址.Foo"); c1,c2,c3是Foo类的类类型,一个类只可能是Class类的一个实例对象,所以c1=c2=c3. 可以通过类的类类型创建该类的对象实例,即通过c1 c2 c3创建Foo的实例 Foo f=(Foo)c1.newInstance();//需要有无参数的构造方法
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

  • Java中集合的泛型,是防治输入错误的,只在编译阶段有效。 编译后无效。
    查看全部
  • 一切皆对象
    查看全部
    1 采集 收起 来源:Class类的使用

    2015-07-03

  • 只有JVM能创建Class类的实例,它的构造方法是私有的。 任何一个类都是Class的实例对象,这个实例对象有三种表示方式。 第一种表示方式,告诉我们任何一个类都有一个隐含的静态成员变量class。 Class c1=Foo.class; 第二种表达方式,已经知道该类的对象通过getClass方法 Class c2=foo1.getClass(); 官网c1 c2表示了Foo类的类类型(class type), 万事万物皆对象,是Class类的实例对象 这个对象我们称为该类的类类型 c1==c2 一个类只可能是Class类的一个实例对象,所以以上相等。 第三种表达方式 Class c3 = null; c3=Class.forName("com.imooc.reflect.Foo"); c2==c3==c1 我们完全可以通过类的类类型创建该类的对象实例,即通过c1 c2 c3创建Foo的实例 Foo f=(Foo)c1.newInstance();//需要有无参数的构造方法
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

  • 【本节总结】 1、万事万物皆对象,任何一个类都是Class类的对象(也称为该类的类类型)。 2、三种表示方法: ①Class c1 = 类名.class; ②Class c2 = 类的对象.getClass(); ③Class c3 = null; try{ c3 = Class.forName("全路径类名"); }catch(Exception e){} # 疑问 # 觉得第三种表达方式有点蛋疼,既然知道类的全称,为何不直接用 类名.class 来获取该类的类类型? 3、一个类只可能是Class类的一个实例对象 故,c1 == c2 == c3,结果为true 4、可以通过类的类类型创建该类的对象实例 c1.newInstance();
    查看全部
    1 采集 收起 来源:Class类的使用

    2018-03-22

举报

0/150
提交
取消
课程须知
童鞋们,学习本课程前需要熟悉Java面向对象的思想,并能掌握Java IO输入输出流、集合和泛型等知识。可参考慕课网Java入门的一、二、三季以及我的文件我做主——Java IO流课程。
老师告诉你能学到什么?
1、能够理解并应用反射机制。 2、能够了解反射机制在集合泛型中的应用。 3、有利于更好的学习框架等Java高级技术。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!